1700448211
1700448212
//定义某种能力
1700448213
1700448214
interface Feature{
1700448215
1700448216
//加载特性
1700448217
1700448218
public void load();
1700448219
1700448220
}
1700448221
1700448222
//飞行能力
1700448223
1700448224
class FlyFeature implements Feature{
1700448225
1700448226
public void load(){
1700448227
1700448228
System.out.println(“增加一只翅膀……”);
1700448229
1700448230
}
1700448231
1700448232
}
1700448233
1700448234
//钻地能力
1700448235
1700448236
class DigFeature implements Feature{
1700448237
1700448238
public void load(){
1700448239
1700448240
System.out.println(“增加钻地能力……”);
1700448241
1700448242
}
1700448243
1700448244
}
1700448245
1700448246
此处定义了两种能力:一种是飞行,另一种是钻地,我们如果把这两种属性赋予到Jerry身上,那就需要一个包装动作类了,代码如下:
1700448247
1700448248
class DecorateAnimal implements Animal{
1700448249
1700448250
//被包装的动物
1700448251
1700448252
private Animal animal;
1700448253
1700448254
//使用哪一个包装器
1700448255
1700448256
private Class<?extends Feature>clz;
1700448257
1700448258
public DecorateAnimal(Animal_animal, Class<?extends Feature>_clz){
1700448259
1700448260
animal=_animal;
[
上一页 ]
[ :1.700448211e+09 ]
[
下一页 ]