细节一
子类继承了父类所有属性和方法,非私有的属性和方法可以在子类直接访问,但是私有属性和方法不能在子类直接访问,要通过公共的方法public
去访问。
细节二
子类必须调用父类的构造器,完成父类的初始化
细节三
在继承中如果子类调用父类方法,如果父类方法中没有无参构造器,则需要在子类中使用super(参数列表)
来指定父类中的构造器
当创建子类对象时,不管使用子类的哪个构造器,默认情况下总会去调用父类的无参构造器
在子类中使用super(参数列表)
来指定父类的构造器
super
在使用时必须放在构造器第一行。(super 只能在构造器中使用)
super()
和this()
都只能放在构造器第一行,因此这两个方法不能共存在一个构造器中
细节四
java所有类都是Object类的子类,Object是所有类的基类。
父类构造器的调用不限于直接父类!将一直往上追溯直到Object类(顶级父类)
此时继承关系即为:
运行结果:
细节五
子类中最多只能继承一个父类(直接继承),即 java 中是单继承机制
。
Q: 如何让A类继承B类和C类?
A: 可以让A类继承B类,B类继承C类,来间接实现继承。
细节六
不能滥用继承,子类和父类之间必须满足 is-a
的逻辑关系。
B类和C类?
A: 可以让A类继承B类,B类继承C类,来间接实现继承。
细节六
不能滥用继承,子类和父类之间必须满足 is-a
的逻辑关系。