复合优于继承
来源:互联网 发布:php正则表达式函数 编辑:程序博客网 时间:2024/06/09 19:43
在代码的复用方面,java提供了复合,代理和继承三种方式。复合是显示的复用代码,继承是隐式的复用,而代理是复合和继承的中庸之道。这里最主要讨论下“复合优于继承”这一观点。
复合优于继承:继承的确在代码复用这一块做出了很大的贡献,通过继承我们可以给子类定义一些基本的属性,方法减少重复的代码。在同包下明确的is-a的关系,现有类就是用来继承的或者有很详细的说明文档的类中,继承是一个很不错的选择。但是对于不是很明确的关系等的情况下,继承并不是一个很多好的选择。继承破坏了面向对象思想中的封装特性,这是因为子类继承父类会对父类的封装进行重写而破坏原有的父类的封装。当子类不去覆盖父类的一些方法,并调用父类的方法,有可能调用的是父类的自用的代码,我们并不能保证父类的这些方法不会随着父类的更新而不改变,当父类改变的时候,那么子类可能就可能发生错误。
复合是将现有类作为新的类的一个私有域(一般情况下),这样不会对现有类进行任何的覆盖,保持现有类的封装,并且现有类的改变也不会对新的类造成影响。
- 复合优于继承
- effective--复合优于继承
- Effective Java(第二版)-复合优于继承
- EffectiveJava之14-复合优于继承
- 设计思想之复合应该优于继承
- java 复合优于重用
- 学习effective java-16类和接口之复合优于继承
- “组合”优于“继承”
- “组合”优于“继承” 例子
- “组合”优于“继承” 例子
- java-组合优于继承
- 组合优于继承
- 聚合优于继承
- 组合未必优于继承
- 组合优于继承
- 继承优于标签
- 复合优先于继承
- private继承与复合
- 【Project construct】Hello World项目结构分析
- C专家编程-读书笔记之第三章
- java学习笔记之泛型
- zt:如何学习C++
- 计算机离智能化还有多远?
- 复合优于继承
- 杭电2089
- STL学习小结
- 黑马程序员------java学习笔记之数据结构
- springMVC初步学习(七)
- 对16进制数处理
- C++不定参数用法实践
- cygwin 软件安装利器 ---apt-cyg
- 【Orientation】详解Android中的屏幕方向