码迷,mamicode.com
首页 > 其他好文 > 详细

代码大全-继承

时间:2016-04-02 22:42:15      阅读:185      评论:0      收藏:0      [点我收藏+]

标签:

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

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

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

针对继承的一些原则:

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

 

代码大全-继承

标签:

原文地址:http://www.cnblogs.com/Brake/p/5348425.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!