继承与访问权限

访问权限:
如果不提供任何访问权限修饰词,则意味着它是“包访问权限”

对于类的访问权限,仅有两个选择:包访问权限或public


继承:
Java会自动在导出类的构造器中插入对基类构造器的调用

如果没有默认的基类构造器,或者想调用一个带参数的基类构造器,就必须用关键字super显示地调用基类构造器的语句,并且以适当的参数列表

如果Java的基类拥有某个已被多次重载的方法名称,那么在导出类中重新定义该方法名称并不会屏蔽其在基类中的任何版本(与C++不同)

@override注解可以防止你在不想重载时而意外地进行了重载。当想要覆写某个方法时,可以选择添加这个注解。在你不留心重载而非覆写了该方法时,编译器就会生成一条错误消息

Java中除了static方法和final方法(private方法属于final方法)之外,其他所有的方法都是后期绑定的,只有非private方法才可以被覆盖。构造器并不具有多态性(它们实际上是static方法,只不过该static声明是隐式的)

基类的构造器总是在导出类的构造过程中被调用,而且按照继承层次逐渐向上链接,以使每个基类的构造器都能得到调用。在导出类的构造器主体中,如果没有明确指定调用某个基类的构造器,它就会“默默”地调用默认构造器。如果不存在默认构造器,编译器就会报错。(对于没有的,会合成默认构造器)

复杂对象调用构造器遵照以下顺序:
1、调用基类构造器;
2、按声明顺序调用成员的初始化方法;
3、调用导出类构造器的主体;

你可能感兴趣的:(Java)