java 对类的复用
2016-08-05 09:56
141 查看
java之所以能有如此广泛的应用除了java自身的平台无关性(移植性),还有java具有强大的类库和第三方开源框架等使得java开发变得简单,也就是对类的复用。而在java中一般使用组合、继承、和代理来完成类的复用。
1、组合:
在新类中创建复用类的对象,这种复用方式只复用了现有类的功能而非现有类的形式(继承即复用了现有类的形式)
复用了类的底层实现
2、继承:
复用现有类的形式可以在现有类的基础上添加新的特性(代码)继承也是面向对象设计的三大基石之一(封装、继承、多态)
复用了类的接口
继承的语法:如果创建一个类除非指明继承一个现有类,该类会默认继承Object类。使用extends 该类会得到基类的所有域和方法(但是private声明的会被屏蔽掉)。
初始化基类和导出类:总是基类最先被初始化然后才是导出类,也就是初始化关系是从内(基类)向外(导出类)扩散。
如果想要带参数初始化基类可以使用super关键字super(变量参数......)
3、代理:
代理作为组合和继承的中间点,将复用类的对象赋予新类的构造类中。
4、在继承和组合中间选择
组合:
优点
(1)首先考虑使用组合,组合只复用了现有类的形式所以更加灵活,具有更好的扩展性。
(2)新类和现有类彼此相互独立,不会破坏新类的封装性
(3)支持动态组合,运行时选择不同类型的局部对象
缺点
(1)不能像基础一样直接获取现有类的接口
(2)创建新类对象必须创建现有类的对象
继承:
优点
(1)自动获取现有类的所有方法和属性
(2)创建子类对象时不需创建基类对象(基类对象自动创建包含于子类中)
缺点
(1)子类和父类耦合过紧,子类依赖于父类实现,父类改变子类受其影响大。子类缺乏独立性
(2)支持扩展但是会加大设计的复杂性
(3)无法动态继承
下图来自于网络资料
1、组合:
在新类中创建复用类的对象,这种复用方式只复用了现有类的功能而非现有类的形式(继承即复用了现有类的形式)
复用了类的底层实现
2、继承:
复用现有类的形式可以在现有类的基础上添加新的特性(代码)继承也是面向对象设计的三大基石之一(封装、继承、多态)
复用了类的接口
继承的语法:如果创建一个类除非指明继承一个现有类,该类会默认继承Object类。使用extends 该类会得到基类的所有域和方法(但是private声明的会被屏蔽掉)。
初始化基类和导出类:总是基类最先被初始化然后才是导出类,也就是初始化关系是从内(基类)向外(导出类)扩散。
如果想要带参数初始化基类可以使用super关键字super(变量参数......)
3、代理:
代理作为组合和继承的中间点,将复用类的对象赋予新类的构造类中。
4、在继承和组合中间选择
组合:
优点
(1)首先考虑使用组合,组合只复用了现有类的形式所以更加灵活,具有更好的扩展性。
(2)新类和现有类彼此相互独立,不会破坏新类的封装性
(3)支持动态组合,运行时选择不同类型的局部对象
缺点
(1)不能像基础一样直接获取现有类的接口
(2)创建新类对象必须创建现有类的对象
继承:
优点
(1)自动获取现有类的所有方法和属性
(2)创建子类对象时不需创建基类对象(基类对象自动创建包含于子类中)
缺点
(1)子类和父类耦合过紧,子类依赖于父类实现,父类改变子类受其影响大。子类缺乏独立性
(2)支持扩展但是会加大设计的复杂性
(3)无法动态继承
下图来自于网络资料
相关文章推荐
- Java语言 -- 复用类
- 【学习笔记】Thinking in java (第三版)第六章 Reusing Classes(复用类)
- java编程思想学习笔记 第七章 复用类
- 【Java学习笔记】复用类
- java编程思想复用,多态,以及设计模式-多态
- JAVA_复用类
- java NIO的多路复用及reactor
- java继承---->类的复用
- java编程思想 复用类总结摘录
- 在JAVA中实现C++代码的复用
- 在JAVA中实现C++代码的复用
- 「Thinking in Java」Notes ① 第7章 复用类
- java编程思想阅读笔记(二)访问权限控制和复用类
- java 复用代码(组合与继承)
- thingking in java 读书笔记---复用和多态
- JAVA基础学习篇----《thinking in java》第六章:代码复用
- Thinking in java 之复用类 final关键字
- thinking in java笔记 7 复用类
- 《Java 编程思想》--第七章:复用类
- java中复用技术(继承和组合)