什么是继承?
- Java中提供一个关键字extends,用这个关键字,我们可以让一个类和另一个类建立起父子关系。
public class Student extends People{}
- Student称为子类(派生类),People称为父类(基类 或超类)
- 作用:当子类继承父类后,就可以直接使用父类公共的属性和方法了
继承设计规范:
- 子类们相同特征(共性属性,共性方法)放在父类中定义,子类独有的的属性和行为应该定义在子类自己里面。
心
继承的特点
- 子类可以继承父类的属性和行为,但是子类不能继承父类的构造器。(子类有自己的构造器,父类构造器用于初始化父类对象。)
- Java是单继承模式:一个类只能继承一个直接父类。
- Java不支持多继承、但是支持多层继承。
- Java中所有的类都是Object类的子类。
在子类方法中访问成员(成员变量、成员方法)满足:
就近原则
- 先子类局部范围找
- 然后子类成员范围找
- 然后父类成员范围找,如果父类范围还没有找到则报错。
公
什么是方法重写?
- 在继承体系中,子类出现了和父类中一模一样的方法声明,我们就称子类这个方法是重写的方法。
方法重写注意事项和要求
- 重写方法的名称、形参列表必须与被重写方法的名称和参数列表一致。
- 私有方法不能被重写。
- 子类重写父类方法时,访问权限必须大于或者等于父类(暂时了解∶缺省
- 子类不能重写父类的静态方法,如果重写会报错的。
子类继承父类后构造器的特点:
- 子类中所有的构造器默认都会先访问父类中无参的构造器,再执行自己。
- 原因:子类在初始化的时候,有可能会使用到父类中的数据,如果父类没有完成初始化,子类将无法使用父类的数据。子类初始化之前,一定要调用父类构造器先完成父类数据空间的初始化。
super调用父类有参数构造器的作用:
this和super详情
- this:代表本类对象的引用;super:代表父类存储空间的标识