类的执行顺序

package com.payton.polymorphism;

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 {
    private Bread b = new Bread();
    Lunch(){
        System.out.println("Lunch()");
    }
}

class PortableLunch extends Lunch {
    PortableLunch(){
        System.out.println("PortableLunch()");
    }
}

public class Sandwich extends PortableLunch{
    
    private Bread b = new Bread();
    private Cheese c = new Cheese();
    private Lettuce l = new Lettuce();
    
    public Sandwich(){
        System.out.println("Sandwich()");
    }

    public static void main(String[] args) {
        new Sandwich();
    }

}



Meal()
Bread()
Lunch()
PortableLunch()
Bread()
Cheese()
Lettuce()
Sandwich()


调用顺序:
1、调用基类的构造函数。(先创建根,下一级派生类,....直到最后一个继承类的构造函数)
2、成员对象按照其声明顺序进行初始化。
3、执行继承类的构造函数。

你可能感兴趣的:(java,C++,c,C#)