1.为什么要继承
创建 Student 和 Worker 两个类,都有 name 和 age 属性
class Student {
private String name;
private int age;
public void study() {
System.out.println("学生学习");
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
class Worker {
private String name;
private int age;
public void work() {
System.out.println("工人工作");
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
在上面代码中,我们发现,在 Student 类中有 name 和 age 属性,同时还存在他们的 set() 和get() 方法,而在 Worker 类中也有中两个属性,并且仍然有相应属性的 set() 和 get() 方法,那么我们会发现这两个类90%的代码都相同,唯一不同的是 Student 类中的 study 方法和 Worker 类中的work方法,这个时候我们就可以使用继承来简化我们的代码
2.为什么是继承
在Java中通过 extends 关键字来让两个了产生关系后,那么这两个类就具有了继承作用,假设类A继承了类B,那么类A就会具有类B的相应属性的方法,这个关系我们通常叫父子关系,类A叫子类,类B叫父类,也可以叫类A为派生类,类B叫基类
3.如何实现继承
class Person {
private String name;
private int age;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
class Student extends Person {
public void study() {
System.out.println("学生学习");
}
}
class Worker extends Person {
public void work() {
System.out.println("工人工作");
}
}
public class PolymorphicDemo {
public static void main(String[] args) {
Student student = new Student();
student.study();
student.setName("小王");
student.setAge(20);
}
}
在上述代码中,Student 和 Worker 两个子类使用 extend 关键字来继承了 Person 父类中的 study() 和 work() 两个方法,使代码变得简洁,减少了代码的冗余度
4.继承的好处
1.使用继承后,可以让代码减少冗余度
2.继承使实现多态的前提
5.继承的缺点
1.当使用了继承后,类与类之间的关系就变得非常的紧密,不符合开备原则
2.在Java中的类只能支持单继承(接口中支持多继承),即一个类只能由一个父类
注意:Java中虽然只支持单继承,但是支持多重继承