继承详解
继承
基本介绍
继承可以解决代码复用,让编程更加靠近人类思维,当多个类存在相同的属性和方法时,可以从这些类中抽象出父类,在父类中定义这些相同 的属性和方法,所有的子类不需要重新定义这些属性和方法,只需要通过声明继承父类即可
基本语法
class 子类 extends 父类{
}
- 子类就会自动拥有父类定义的属性和方法
- 父类又叫超类,基类
- 子类又叫派生类
继承的优势
- 代码的复用性提高
- 代码的扩展性和维护性提高了
注意事项
- 子类继承了所有的属性和方法,非私有的属性和方法可以在子类直接访问,但是私有属性和方法不能在子类直接访问,要通过父类提供公共的方法去访问
- 子类必须调用父类的构造器,完成对父类的初始化
- 当创建子类对象时,不管使用子类的哪个构造器,默认情况下总会去调用父类的无参构造器,如果父类没有提供无参构造器,则必须在子类的构造器汇总用super指定使用父类的哪个构造器完成对父类的初始化工作,否则编译不会通过
- 如果希望指定去调用父类的某个构造器,则显式的调用一下:super(参数列表)
- super在使用时,必须放在构造器第一行(super只能在构造器中使用)
- super()和this()都只能放在构造器的第一行,因此这两个方法不能共存在一个构造器
- Java所有类都是object类的子类,Object是所有类的基类
- 父类构造器的调用不限于直接父类,将一直往上追溯,直到Object
- 子类最多只能继承一个父类(直接父类),即单继承机制
- 不能滥用继承,子类和父类之间必须满足is - a的逻辑关系