java 对类的复用

来源:互联网 发布:视频直播源码 编辑:程序博客网 时间:2024/05/22 13:54

         java之所以能有如此广泛的应用除了java自身的平台无关性(移植性),还有java具有强大的类库和第三方开源框架等使得java开发变得简单,也就是对类的复用。而在java中一般使用组合、继承、和代理来完成类的复用。

1、组合:

在新类中创建复用类的对象,这种复用方式只复用了现有类的功能而非现有类的形式(继承即复用了现有类的形式)

复用了类的底层实现

2、继承:

复用现有类的形式可以在现有类的基础上添加新的特性(代码)继承也是面向对象设计的三大基石之一(封装、继承、多态)

复用了类的接口

继承的语法:如果创建一个类除非指明继承一个现有类,该类会默认继承Object类。使用extends 该类会得到基类的所有域和方法(但是private声明的会被屏蔽掉)。

初始化基类和导出类:总是基类最先被初始化然后才是导出类,也就是初始化关系是从内(基类)向外(导出类)扩散。

如果想要带参数初始化基类可以使用super关键字super(变量参数......)

3、代理:

代理作为组合和继承的中间点,将复用类的对象赋予新类的构造类中。

4、在继承和组合中间选择

组合:

优点

(1)首先考虑使用组合,组合只复用了现有类的形式所以更加灵活,具有更好的扩展性。

(2)新类和现有类彼此相互独立,不会破坏新类的封装性

(3)支持动态组合,运行时选择不同类型的局部对象

缺点

 (1)不能像基础一样直接获取现有类的接口

 (2)创建新类对象必须创建现有类的对象

继承:

优点

 (1)自动获取现有类的所有方法和属性

 (2)创建子类对象时不需创建基类对象(基类对象自动创建包含于子类中)

缺点

 (1)子类和父类耦合过紧,子类依赖于父类实现,父类改变子类受其影响大。子类缺乏独立性

 (2)支持扩展但是会加大设计的复杂性

 (3)无法动态继承

下图来自于网络资料


 





0 0
原创粉丝点击