[关闭]
@songying 2018-06-27T22:40:45.000000Z 字数 756 阅读 1144

Java 继承

Java


java不支持多继承

5.1 类,超类,子类

5.1.1 定义子类

  1. public class SubClassName extends ClassName{
  2. }

5.1.2 覆盖方法

子类重写父类的方法,叫做覆盖。
直接在子类中重新实现该方法即可。

在覆盖一个方法时,子类方法不能低于父类方法的可见性,尤其当父类为public时,子类方法一定要声明为public

5.1.3 子类构造器

  1. public SubClassName(参数列表){
  2. super(参数列表)
  3. }

子类的构造器无法访问父类的私有域, 因此必须使用父类的构造器对部分私有域进行初始化,我们可以通过super实现对父类构造器的调用。使用super调用构造器的语句必须是子类构造器的第一条语句。

5.1.4 继承层次

5.1.5 多态

5.1.6 理解方法调用

调用过程:

  1. 编译器查看对象的声明类型和方法名, 获取所有可能被调用的候选方法
  2. 编译器查看调用方法时提供的参数类型。(重载解析)
  3. 如果时private方法, static方法, final方法或者构造器,那么编译器将可以准确的知道应该调用哪个方法,这种调用方式称为静态绑定。
  4. 当程序运行,并且采用动态绑定方法时,虚拟机一定调用与x所引用对象的实际类型最合适的那个类的方法。

阻止继承:final类和方法

final类:说明该类无法被继承
final方法: 子类无法覆盖这个方法。

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注