构造方法的继承遵循以下原则:
1)子类无条件地继承父类的无参数的构造方法。
2)如果子类没有定义构造方法,则它将继承父类无参数的构造方法作为自己的构造方去;如果子类定义了构造方法,则在创建子类对象时,将先执行来自继承父类的无参数的构方法,然后再执行自己的构造方法。
3)对于父类带参数的构造方法,子类可以通过在自己的构造方法中使用super关键字来周用它,但这个调用语句必须是子类构造方法中的第一条可执行语句。
分析代码:
class A{
A(){
System.out. println("A()");
}
}
class B extends A{
B(){
System. out. println("B()”);
}
public static void main(String[] args){
new B();
}
}
执行结果为:
A()
B()
分析得知,父类的对象是优先于子类对象而存在的(在现实生活中也是如此)。也就是兑,父类对象的构造在子类对象构造之前,即先调用父类构造方法创建父类对象,再调用子类构造方法创建子类对象。
当然,不管是构造父类对象还是子类对象,都是遵循以下步骤执行:
1)静态语句的执行。
2)成员变量的初始化。
3)语句块的初始化
4)构造方法的执行