最近一直在看java编程思想,在看到多态这一章的时候,发现有些东西非常有用的,下面就关于组合,继承,多态的初始化的一个例子给大家分享一下:
代码:
class Meal {
public Meal() {
System.out.println("Meal!!");
}
}
class Bread {
public Bread() {
System.out.println("Bread!!");
}
}
class Cheese {
public Cheese() {
System.out.println("Cheese!!");
}
}
class Lettuce {
public Lettuce() {
System.out.println("Lettuce!!");
}
}
class Lunch extends Meal {
public Lunch() {
System.out.println("Lunch!!");
}
}
class PorLunch extends Lunch {
public PorLunch() {
System.out.println("Porlunch!!");
}
}
public class SandWich extends PorLunch {
private Bread bread=new Bread();
private Cheese ch=new Cheese();
private Lettuce lt=new Lettuce();
public SandWich(){
System.out.println("Sandwich!!");
}
public static void main(String[] args) {
new SandWich();
}
}
输出:
Meal!!
Lunch!!
Porlunch!!
Bread!!
Cheese!!
Lettuce!!
Sandwich!!
根据结果得到:
顺序是:
1。最先调用的是基类的构造器,一步一步的递归的调用下去;
2.调用成员的的初始化方法:
3.调用导出类的构造器的主体!