1、什么是继承?
继承是面向对象的三大特征之一,java中只支持单继承,所以每个类只能有一个直接父类。
并且子类拥有父类的属性和行为(除了私有属性和行为)
优点:提升了代码的复用性
2、继承的语法
通过extends来继承
class 父类 { }
class 子类 extends 父类 { }
例(宠物项目):
//父类
public class Pet {
protected static String name="无名氏";
private int health=100;
private int love=0;
public Pet() {
this.health=95;
System.out.println("执行宠物的无参构造方法");
}
public Pet(String name) {
this.name=name;
}
public String getName() {
return name;
}
public int getHealth() {
return health;
}
public int getLove() {
return love;
}
public void print() {
System.out.println("宠物的自白:\n我的名字叫:"+this.name+
",健康值是"+this.health+",和主人的亲密度是"+this.love+"。");
}
}
//子类
public class Dog extends Pet {
private String strain;
public Dog(String name,String strain) {
super(name);
this.strain=strain;
}
public String getStrain() {
return strain;
}
public void print() {
super.print();
System.out.println("我是一只"+this.strain+"。");
}
}
3、方法的重写或方法的覆盖
- 重写方法和被重写方法必须具有相同的方法名。
- 重写方法和被重写方法具有相同的参数列表。
- 重写方法的返回类型必须和被重写方法的返回值类型相同或是其子类。
- 重写方法不能缩小被重写方法的访问权限。
4、super关键字
super代表当前对象的直接父类对象的默认引用。
可以访问父类的成员,如父类的属性,方法,构造方法。(私有的除外)。
在调用super时,super必须在方法的第一行,否则无法通过编译。