不知道如何实例化对象的类称为抽象类(abstract class)。知道如何实例化对象的类称为具体类(concrete class)。
在面向对象范型中,抽象类的一个重要用途是帮助创建继承层次结构。
如果我拿起一只闹钟对你说:“你觉得我的水果怎么样?”你会认为我疯了;而如果我拿起一只苹果问同样的问题,你就会觉得很正常。“水果”这个称谓表达了有用的信息,虽然你不能创建水果对象。事实上,它是一个类的(概念),但不知道如何实例化它这种类型的对象。
引擎中包含活塞,引擎有最大马力。活塞是有行为的,因此被建模成类,而最大马力只是一个描述性的属性,没有行动。
继承关系是面向对象范型中比较重要的关系之一。用它来表示数之间的“a-kind-of”关系是最好不过了。它的主要用途有两种,它被用作表示两个类之间的共性机制(泛化),还用来表示一个类是另一类的特殊类型(特化)。
决定性的问题是,“这个属性的值是否影响类的行为”?
对属性值的显示的分情况分析常常是错误的。类应当解融合成一个继承层次结构,每一个属性值都被换成一个派生类。
如果你觉得需要在运行时创建新的类,那么退后一步以认清你要创建的是对象。现在,把这些对象概括成一个类。
在派生类中用空方法(也就是什么都不做的方法)来覆写基类中的方法应当是非法的。
只要在面向对象设计中用到了继承,问自己两个问题:
1.派生类是否是它继承的哪个东西的一个特殊类型?
2.基类是不是派生类的一部分?
如果你在一个面向对象设计中发现了多重继承关系,确保没有哪个基类实际上是另一个基类的派生类。
分享到:
相关推荐
ood启思录读书笔记
OOD设计很好的教材,高清 OOD启思录
而《OOD启思录》被读者评价为“面向对象设计领域中的Effective C++”——正如Effective C++能帮助你迈向C++专家层面,《OOD启思录》能帮助你迈入OOD殿堂。 本书提供了改进面向对象设计的真知灼见。 全书共11章...
OOD启思录
我自己要用的资源,如果有人想下,那也可以的这是一本很好的设计方面的书.
OOD启思录-面向对象圣典(英文版) Insights into oo design improvement. More than sixty guidelines are languageindependent and allow one to rate the integrity of a software design. The heuristics ...
关于OOD对象深入解析,本书适合已经有一定工作经验人员查阅。
Upon completion of an object-oriented design, you are faced with a troubling question: "Is it good, bad, or somewhere in between?" Seasoned experts often answer this question by subjecting the design ...
面向对象设计领域的一本好书 全书介绍了面向对象设计的一组经验原则
找了好久终于找到中文版的了,还有目录,共享一下……
ood(object oriented design)面向对象设计 如所熟知,面向对象作为一种程序设计技术最早于60年代后期提出,用于Simula的应用程 序开发。到了70年代,面向对象成为Smalltalk语言的一个重要特征。当时,面向对象技术...
看外国专家简单明了讲解如何解释OOD及设计
面向对象设计(OOD)思想(示例代码见文末下载连接)收藏 有了思想才能飞翔,缺乏灵活就象少了轮子的汽车,难以飞奔。为了更好的理解设计思想,结合一个尽可能简洁的实例来说明OOD、设计模式及重构。通过下面的代码,...
Java OOA & OOD & UML
面向对象技术的C++ OOD实践 面向对象技术的C++ OOD实践
ooa,ood介绍的入门资料,请想用,谢谢
面向对象分析(OOA)、面向对象设计(OOD)与UML的基础教程