需要一些解释与OOAD“是一个”层次结构

时间:2009-09-03 08:41:02

标签: methodology hierarchy ooad

我已购买Object-Oriented Analysis and Design with Applications,在第64页第2段解释了“是一个”层次结构,如下所示。

  

就其“is a”层次结构而言,高级抽象是一般化的,而低级抽象是专门的。因此,我们说Flower类的抽象级别高于Plant类。

据我了解,我认为植物更普遍,花卉和花卉类别比植物的更低抽象水平。

我想知道此时我的理解是正确的还是这本书是正确的?请澄清一下。

4 个答案:

答案 0 :(得分:3)

我同意,这句话错了。根据这里的定义,Plant处于比Flower更高的抽象层次:定义是正确的,示例中的名称是转置的。

答案 1 :(得分:1)

is-a层次结构的植物和花卉例子可能是我听过的最糟糕的事情!

汽车是一种车辆。狗是一种哺乳动物。储蓄账户是一个(n)账户。所有这些都是典型且易于理解的例子。

答案 2 :(得分:0)

你引用的内容听起来不太合适。假设Flower继承自Plant,我会理解Plant比Flower更高级别的抽象。因此,

is a植物

<强>但

植物不一定是花

答案 3 :(得分:0)

我不会说“花是一种植物”的说法是正确的,在我看来,植物有一个花。我认为有一些背景缺失。

我认为本书的作者在这里解释了继承层次结构。如果实体位于层次结构的顶部,则它或者需要比层次结构中的实体更通用(或抽象)。让一个实体继承自另一个实体但是比它的父更抽象是一种糟糕的设计(转换为从具体类继承的抽象类)。