复合优先于继承
2009-09-12 06:03
162 查看
继承打破了封装性。子类依赖于超类中特定功能的实现细节。而超类的实现有可能会随着发行版本发生变化,那么子类就回被破坏。
覆盖动作可能会引起一系列的问题。只给子类增加新的方法,而不覆盖现有的方法,相对比较安全。但是也不是绝对安全。例如 父类被扩展命名了与子类重名的方法。
使用复合可以解决该问题,详细请见设计模式里的装饰者模式。用一个类把另外的类包装起来。
只有当子类真正是超类的子类型时,才适合用继承。
覆盖动作可能会引起一系列的问题。只给子类增加新的方法,而不覆盖现有的方法,相对比较安全。但是也不是绝对安全。例如 父类被扩展命名了与子类重名的方法。
使用复合可以解决该问题,详细请见设计模式里的装饰者模式。用一个类把另外的类包装起来。
只有当子类真正是超类的子类型时,才适合用继承。
相关文章推荐
- Effective Java学习笔记:复合优先于继承
- Effective Java - 类和接口 - 复合优先于继承
- 第16条:复合优先于继承
- (16):复合优先于继承
- 复合优先于继承
- 第16条:复合优先于继承
- 复合优先于继承
- 复合优先于继承
- EffectiveJava(16)复合优先于继承
- 复合优先于继承
- 【Effective Java】6、使用复合优先于使用继承
- 哥最喜欢的一条:复合优先继承(仅限于extends)
- Java学习笔记13:复合优先于继承
- Effective Java读书笔记-复合优先于继承
- 第16条:复合优先于继承
- 第16条:复合优先于继承
- 复合优先于继承。
- 第十六条:复合优先于继承
- Effective Java 第16条 : 复合优先于继承
- 第16条:复合优先于继承