class Meal{
Meal(){System.out.println("Meal()")}
}
class Bread{
Bread(){System.out.println("Bread()")}
}
class Cheese{
Cheese(){System.out.println("Cheese()")}
}
class Lettuce{
Lettuce(){System.out.println("Lettuce()")}
}
class Lunch extends Meal{
Lunch(){System.out.println("Lunch()")}
}
class PortableLunch extends Lunch{
PortableLunch(){System.out.println("PortableLunch()")}
}
class Sandwich extends PortableLunch{
private Bread b = new Bread();
private Cheese c = new Cheese();
private Lettuce l = new Lettuce();
Sandwich(){
System.out.println("Sandwich()");
}
public static void main(String[] args){
new Sandwich();
}
}
输出:
Meal()
Lunch()
PortableLunch() //这3个构造器因为是Sandwich的继承类中的构造器,因此在新建一个Sandwich对象时,按照继承顺序调用基类构造器,因此输出继承层次中的根,也就是Meal(),然后依次调用下一层派生类。
Bread()
Cheese()
Lettuce()//调用完构造器方法后,调用初始化本类成员,也就是3个private成员。
Sandwich()//最后调用本类构造器方法。
java基础技术知识点总结——构造器的调用顺序
最新推荐文章于 2023-03-21 11:14:44 发布