继承和组合的关系

最生动的比方:   
    
 继承是说“我父亲在家里给我帮了很大的忙”。   
    
 组合是说“我请了个老头在我家里干活”。


  组合是在一类类中引用另一个类。生成另一个类的实例。   
  而继承只是继承了父类的变量和方法。   
  区别:   
  使用组合可以用到另一个类中私有的变量和方法,而继承就不可以用到父类的私有的变量和方法了   

  他们都有各自的好处,要灵活的运用。


一:继承

  继承是Is a 的关系,比如说Student继承Person,则说明Student is a Person。继承的优点是子类可以重写父类的方法来方便地实现对父类的扩展。

  继承的缺点有以下几点:

  1:父类的内部细节对子类是可见的。

  2:子类从父类继承的方法在编译时就确定下来了,所以无法在运行期间改变从父类继承的方法的行为。

  3:子类与父类是一种高耦合,违背了面向对象思想。

      4 :继承关系最大的弱点是打破了封装,子类能够访问父类的实现细节,子类与父类之间紧密耦合,子类缺乏独立性,从而影响了子类的可维护性。

      5:不支持动态继承。在运行时,子类无法选择不同的父类。

二:组合

      1:不破坏封装,整体类与局部类之间松耦合,彼此相对独立。

      2:具有较好的可扩展性。

      3:支持动态组合。在运行时,整体对象可以选择不同类型的局部对象。


组合是has a的关系 
继承是is a的关系


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值