构造器的调用顺序
完整代码如下:
public class Sandwich extends PortableLunch{
Bread b=new Bread();
Cheese cs=new Cheese();
Lettuce le=new Lettuce();
public Sandwich() {
// TODO Auto-generated constructor stub
c.print("Sandwich");
}
public static void main(String[] args){
new Sandwich();
}
}
class Meal {
public Meal() {
// TODO Auto-generated constructor stub
c.print("Meal");
}
}
class Bread{
public Bread() {
// TODO Auto-generated constructor stub
c.print("Bread");
}
}
class Cheese{
public Cheese() {
// TODO Auto-generated constructor stub
c.print("Cheese");
}
}
class Lettuce{
public Lettuce() {
// TODO Auto-generated constructor stub
c.print("Lettuce");
}
}
class Lunch extends Meal{
public Lunch() {
// TODO Auto-generated constructor stub
c.print("Lunch");
}
}
class PortableLunch extends Lunch{
public PortableLunch() {
// TODO Auto-generated constructor stub
c.print("PortableLunch");
}
}
class c{
static void print(String str){
System.out.println(str);
}
}
运行结果如下:
Meal
Lunch
PortableLunch
Bread
Cheese
Lettuce
Sandwich
这是一个简单的例子,通过运行结果可以看出调用构造器的顺序规律
1)基类构造器
2)按照声明顺序调用成员的初始化方法
3)调用导出类的构造器