@songying
2018-06-27T22:40:45.000000Z
字数 756
阅读 1144
Java
java不支持多继承
public class SubClassName extends ClassName{
}
子类重写父类的方法,叫做覆盖。
直接在子类中重新实现该方法即可。
在覆盖一个方法时,子类方法不能低于父类方法的可见性,尤其当父类为public时,子类方法一定要声明为public
public SubClassName(参数列表){
super(参数列表)
}
子类的构造器无法访问父类的私有域, 因此必须使用父类的构造器对部分私有域进行初始化,我们可以通过super实现对父类构造器的调用。使用super调用构造器的语句必须是子类构造器的第一条语句。
调用过程:
- 编译器查看对象的声明类型和方法名, 获取所有可能被调用的候选方法
- 编译器查看调用方法时提供的参数类型。(重载解析)
- 如果时private方法, static方法, final方法或者构造器,那么编译器将可以准确的知道应该调用哪个方法,这种调用方式称为静态绑定。
- 当程序运行,并且采用动态绑定方法时,虚拟机一定调用与x所引用对象的实际类型最合适的那个类的方法。
final类:说明该类无法被继承
final方法: 子类无法覆盖这个方法。