继承与组合

继承是is-a(是什么)关系,而组合是has-a(有什么或用什么)关系。
继承的优点是:

  • 重用父类代码
  • 可以覆盖父类的方法,从而为子类定制特有的行为

继承的缺点是:

  • 可能继承了不必要的行为和属性,造成方法污染
  • 在单根继承的语言中只能继承一个父类
  • 从父类继承的方法是静态的,无法在运行时改变
  • 如果父类修改了,子类可能也要做出相应变化
  • 继承是对扩展关闭,对修改开放

使用继承的条件:

  • 是is-a关系
  • 父类中所有的属性和方法在子类都适用
  • 子类不需要去重用别的类的代码

在开发中,我们要遵循单一职责原则,即一个类只负责一件事,再用组合/聚合的方法将这些单一职责的类放在一起完成复杂的业务功能。单一职责的类可以根据业务需要组合在一起,这样在修改某一类的时候最多只修改一部其他代码。
因此,组合要比继承拥有更好的可扩展性和解耦性。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值