您的位置:首页 > 编程语言 > Java开发

Thinking in Java(6)-combinning composition and inheritance

2016-11-02 15:45 447 查看
一个结合composition 和inheritance的简单例子:

class Plate {
Plate(int i) {
System.out.println("Plate constructor");
}
}

class DinnerPlate extends Plate {
DinnerPlate(int i)
{
super(i);
System.out.println("DinnerPlate constructor");
}
}

class Utensil {
Utensil(int i) {
System.out.println("Utensil constructor");
}
}

class Spoon extends Utensil {
Spoon (int i)
{
super(i);
System.out.println("Spoon  constructor");
}
}

class Fork extends Utensil {
Fork(int i){
super(i);
System.out.println("Fork constructor");
}

}

class Knife extends Utensil {
Knife(int i){
super(i);
System.out.println("Knife constructor");
}
}

class Custom {
Custom(int i)
{
System.out.println("Custom constructor");
}
}

public class PlaceSetting extends Custom {

private Spoon sp;
private Fork frk;
private Knife kn;
private DinnerPlate pl;
public PlaceSetting(int i) {
super(i + 1);
sp = new Spoon(i + 2);
frk = new Fork(i + 3);
kn = new Knife(i + 4);
pl = new DinnerPlate(i + 5);
System.out.println("PlaceSetting constructor");
}
public static void main(String[] args) {
PlaceSetting x = new PlaceSetting(1);
}

}


要注意,子类中的构造函数应该在基类的构造函数之后调用。

运行结果为:

Custom constructor
Utensil constructor
Spoon  constructor
Utensil constructor
Fork constructor
Utensil constructor
Knife constructor
Plate constructor
DinnerPlate constructor
PlaceSetting constructor
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: