new对象时,先执行赋值初始化语句,然后执行构造方法
package aaa;
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()”);}
}
public class Sandwich extends PortableLunch {
private Lettuce l = new Lettuce();
public Sandwich() { System.out.println(“Sandwich()”); }//new对象时,先执行赋值初始化语句,然后执行构造方法
private Bread b = new Bread();
private Cheese c = new Cheese();
public static void main(String[] args) {
new Sandwich();
}
}
结果:
Meal()
Lunch()
PortableLunch()
Lettuce()
Bread()
Cheese()
Sandwich()
本文详细解析了Java中构造方法的执行顺序,通过具体的代码示例,展示了当创建一个带有多个成员变量的对象时,Java如何先进行成员变量的初始化,随后调用构造方法的过程。这对于理解Java对象创建机制及类继承中的构造方法调用顺序具有重要意义。
905

被折叠的 条评论
为什么被折叠?



