java中继承与组合的简单理解

对于学习过Java编程语言的同学都会了解,继承是面向对象的一个显著特性。继承是从已有的类中派生出新的类,新的类能吸收已有类的数据和属性,并具有扩展的能力。继承有很多优点,比如它可以在一定程度上提高整个程序代码的复用性,其次它还是对某一批类的抽象,从而能够实现对现实世界更好的建模。

那么倘若我们单纯的从程序代码的复用性角度考虑,组合完全可以替代继承,以下是继承与组合的区别与联系:

  • 组合(has-a)冠希可以显式得被包含类(继承中成父类)的对象,而继承(is-a)则是隐式获得父类对象,被包含的类与父类相对应,而组合外部类与子类对应。
  • 组合关系在运行期决定,而继承关系则在编译期就已经决定。
  • 组合是在组合类与被包含类之间的一种松耦合(有效降低组合类与被包含类的依赖性,无须担心会破坏对方)关系,而继承则是父类与子类之间的一种紧耦合关系。
  • 当选择使用组合关系时,在组合类中包含了外部类的对象,组合类可以根据自身需求,调用外部类相关方法,而使用继承关系时,子类无条件继承父类的所有属性与方法(构造方法除外),并无选择权。
  • 组合类不便于修改,它仅仅简单的调用了被包含类的相关接口,而继承除了复用其父类的接口外,同样具有重写功能,可以覆盖这些接口,从而轻松修改父类默认实现,这个特征也是组合关系所不具备的。
  • 从逻辑上来说,组合关系实现的仅仅是整体与部分的一种思想。而继承则是一种可回溯关系,子类代表父类的对象。
  • 通俗理解:组合”我雇了一个保姆打理家务“,继承”我的父亲再帮我打理家务。
  • 两者之间有什么样的关系使用组合,而两者之间是什么样的关系时用继承。
以上便是java编程语言中组合关系与继承关系区别与联系的大致总结,文章内容是由部分网上资料,以及个人对知识简单理解所组成。如有遗漏之处,欢迎大家进行补充
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值