1700477344
1700477345
我们定义了天鹅的行为,都会飞行、会叫,并且可以描述她们漂亮的外表。丑小鸭是一只白天鹅,是”is-a”的关系,也就是需要实现这个接口了,其实现如代码清单31-8所示。
1700477346
1700477347
代码清单31-8 丑小鸭
1700477348
1700477349
public class UglyDuckling implements Swan{
1700477350
1700477351
//丑小鸭的叫声
1700477352
1700477353
public void cry(){
1700477354
1700477355
System.out.println(“叫声是克噜——克噜——克噜”);
1700477356
1700477357
}
1700477358
1700477359
//丑小鸭的外形
1700477360
1700477361
public void desAppaearance(){
1700477362
1700477363
System.out.println(“外形是脏兮兮的白色,毛茸茸的大脑袋”);
1700477364
1700477365
}
1700477366
1700477367
//丑小鸭还比较小,不能飞
1700477368
1700477369
public void fly(){
1700477370
1700477371
System.out.println(“不能飞行”);
1700477372
1700477373
}
1700477374
1700477375
}
1700477376
1700477377
丑小鸭具备了天鹅的所有行为和属性,因为她本来就是一只白天鹅,只是因为她太小了还不能飞行,也不能照顾自己,所以丑丑的,在经过长时间的流浪生活后,丑小鸭长大了。终于有一天,她发现自己竟然变成了一只美丽的白天鹅,有着漂亮、洁白的羽毛,而且还可以飞行,这完全是一种升华行为。那我们来看看她的行为(飞行)和属性(外形)是如何加强的,先看抽象的装饰类,如代码清单31-9所示。
1700477378
1700477379
代码清单31-9 抽象装饰类
1700477380
1700477381
public class Decorator implements Swan{
1700477382
1700477383
private Swan swan;
1700477384
1700477385
//修饰的是谁
1700477386
1700477387
public Decorator(Swan_swan){
1700477388
1700477389
this.swan=_swan;
1700477390
1700477391
}
1700477392
1700477393
public void cry(){
[
上一页 ]
[ :1.700477344e+09 ]
[
下一页 ]