继承的优点

转载自Beginning C# 2008 Objects中文版——概念到代码(第2版)》第5章对象间的关系

继承有可能是面向对象语言中最强大且独特的方面之一,因为:

派生类比非继承类更简洁。派生类只包含与基类不同的"要素"。例如,从GraduateStudent类的定义可以看出,研究生是"已经从教育机构获得本科学位"的学生。因此,派生类让应用程序的代码相对于传统非面向对象实现的代码量大大减少。

通过继承,能够重用和扩展已经被彻底测试过的代码,且无需修改之。如前所见,您可以创建一个新类GraduateStudent,而无需扰乱Student类的代码。这样,就能确保任何依赖于Student对象实例化和调用方法的客户代码不受派生类GraduateStudent的影响,也避免了对现有应用程序的大量测试工作(如果使用非面向对象的方法向Student类添加研究生特有的字段,则必须重新测试整个应用程序,以确保一切正常)。

最妙的是,即使没有基类的源代码,也可以从中派生出新类!只要有编译好的类,继承机制便会起作用;扩展一个类不需要其源代码。这是面向对象语言提高生产力的最有效方式之一:找一个能满足您需求的类(别人写的或是语言内置的),从该类派生一个类,添加您所需的成员;或者购买第三方的类库,如法炮制。

最后,如第2章所示,分类是人类组织信息的自然方式;所以,唯有按照这种方式组织软件,并使其更直观,方可达到易于维护和扩展的目的。

 

posted @ 2011-01-09 09:41  ebusi2010  阅读(493)  评论(0编辑  收藏  举报