首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

哪种实现形式更好?该怎么解决

2011-12-30 
哪种实现形式更好?有两个对象A和B,以下哪种实现形式更好?//实现一classA{intid...}classBextendsA{byteda

哪种实现形式更好?
有两个对象A和B,以下哪种实现形式更好?

//实现一
class   A
  {int   id;
    ...
  }
class   B   extends   A
  {byte   data[];
    ...
  }

//实现二
class   A
  {int   id;
    ...
  }
class   B  
  {A   a;
    byte   data[];
    public   A   getA   {return   a;}
    ...
  }

[解决办法]
一般情况下,如果组合可能解决问题,就尽量别用继承。
继承表达的是一种“is-a”的关系,组合表达的是“has-a”的关系。前者所造成的两个类之间的耦合程度要高于后者。
但这只是理论上的普遍情况,针对每一种具体的情况,程序设计者本人应该更清楚哪种更适合。
[解决办法]
同上
[解决办法]
继承和组合都能从现有类型生成新类型。然而,组合一般是 将现有类型作为新类型的底层实现的一部分加以复用,而继承复用接口
一开始设计时,一般应优先选择使用组合,只在确实必要时才使用继承,因为组合更灵活
所以建议先使用实现2,看需要在用实现一

热点排行