java组合与继承例子

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(String s){
System.out.println("String Utensil");
}

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

}

class Spoon extends Utensil{
//子类可以分步初始化基类
Spoon(int i){
super(i);
System.out.println("Spoon constructor");
}
Spoon(String i){
super(i);
System.out.println("Spoon constructor");
}
}

class Fork extends Utensil{
Fork(String s ){
super(s);
//super(1);//此处不能同时同地初始化基类构造器
System.out.println("Fork.constructor");
}
}

class Kniff extends Utensil{
Kniff (int i){
super(i);//构造器中初始化基类某个构造器
System.out.println("Kniff.constructor");
}
}

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

//上面的为辅助类,下面为主要类
public class PlaceSetting extends Custom{
//该类展示了组合和继承的魅力之处
//组合开始
private Kniff kn;
private Custom cu;
private Fork fo;
private Spoon sp;
private DinnerPlate di;


//继承开始
PlaceSetting(int i){
//初始化组合器
super(i);
kn=new Kniff(i);
cu=new Custom(i);
fo=new Fork(i+"1");
sp=new Spoon(i);
di=new DinnerPlate(i);

System.out.println("PlaceSetting.constructor");

}

public static void main(String []args){

PlaceSetting p=new PlaceSetting(2);//具有多功能的超级对象
}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值