java 对类的复用

         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
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值