代码大全-继承

继承是Is-A的关系。曾经看到有人为了复用而使用了继承:有一个Base类,里面写了很多Common的方法,很多类继承自这个类,这种做饭就是把Has-A用Is-A来实现的。

继承的概念是说一个类是另一个类的特化。

Liskov替换原则:派生类必须能够通过基类的接口而被使用,且使用者无需了解两者之间的差异。该原则感觉下来是为了保证继承的语义没有变,这样便可以控制继承的复杂度。

针对继承的一些原则:

  • 如果多个类共享数据而非行为,应该创建这些类可以包含的共用对象(Has-A)。
  • 如果多个类共享行为而非数据,应该让它们从共同的基类继承而来,并在基类中定义共用的子程序,这里容易迷糊:这样做的前提是要看是不是Is-A的关系,如果不是,还是不建议使用继承,而是把这些共享的行为放入公用对象,然后引用这个共用对象。
  • 如果多个类既共享数据也共享行为,应该让它们从一个共同的基类继承而来,基类中定义共用的数据和子程序
  • 当想在基类中控制接口时,使用继承,当想自己控制接口时,使用包含。
  • 避免让继承体系过深,不要超过三层,另外子类的数量建议7+—2
  • 当大量出现switch、case时,可以考虑使用继承,使用多态健身case的类型check。

 

转载于:https://www.cnblogs.com/Brake/p/5348425.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值