吴庄有个姑娘要出嫁了,叫李双。你问我吴庄为啥有人姓李?我只能说,刘庄还有人姓徐的。
姑娘出嫁得有嫁妆吧!镇上有个喜事置办所,正是专门做这份工作的。他们也很嚣张了,要雇佣他们的人,必须得接受他们的规矩,他们才给置办嫁妆。下边就是他们的规矩:
public abstract class Bride {
String bride = "没有新娘!";
public String getBride() {
return bride;
}
}
也就是说,想要从这得到很好的嫁妆,必须得继承了这个规矩才行。没办法,谁让这儿是全镇最好的嫁妆置办处。
而他们做的好的秘密就是有一个合作的嫁妆供应商,这家供应商跟这个置办所签订了合同,只供应此一家。两家生意都还不错,双赢!下边是嫁妆供应商:
/**
* 我是为新娘准备嫁妆的
*/
public abstract class Decker extends Bride{
public abstract String getBride();
}
下边有请我们的新娘登场!
public class LiShuang extends Bride {
public LiShuang(){
bride ="李双。";
}
}
好啦,所有嫁妆展现一下吧:
镯子
public class ZhuoZi extends Decker {
Bride bride;
public ZhuoZi(Bride bride) {
this.bride = bride;
}
@Override
public String getBride() {
return bride.getBride()+"戴上了镯子。";
}
}
盖头
public class CoverHead extends Decker {
Bride bride;
public CoverHead(Bride bride) {
this.bride = bride;
}
@Override
public String getBride() {
return "盖头盖住了。"+bride.getBride();
}
}
华服
public class FineClothes extends Decker {
Bride bride;
public FineClothes(Bride bride) {
this.bride = bride;
}
@Override
public String getBride() {
return bride.getBride()+"穿上了华服。";
}
}
金冠
public class GoldCrown extends Decker {
Bride bride;
public GoldCrown(Bride bride) {
this.bride = bride;
}
@Override
public String getBride() {
return bride.getBride()+"戴上了金冠。";
}
}
开始动手啦:
public class Main {
public static void main(String[] args) {
Bride liShuang = new LiShuang();
System.out.println(liShuang.getBride());
//戴上镯子
Bride liShuang1 = new ZhuoZi(liShuang);
System.out.println(liShuang1.getBride());
//戴金冠
Bride liShuang2 = new GoldCrown(liShuang1);
System.out.println(liShuang2.getBride());
//红盖头
Bride liShuang3 = new CoverHead(liShuang2);
System.out.println(liShuang3.getBride());
//红盖头
Bride liShuang4 = new FineClothes(liShuang3);
System.out.println(liShuang4.getBride());
}
}
看一下结果吧:
李双。
李双。戴上了镯子。
李双。戴上了镯子。戴上了金冠。
盖头盖住了。李双。戴上了镯子。戴上了金冠。
盖头盖住了。李双。戴上了镯子。戴上了金冠。穿上了华服。
好了,可以美美的出嫁了。