我已经购买了带有应用程序的面向对象分析和设计,在第 64 页第 2 段解释了“是”层次结构,如下所示。
就其“是”层次而言,高级抽象是泛化的,而低级抽象是专门化的。因此,我们说 Flower 类比 Plant 类处于更高的抽象级别。
据我了解,我认为植物比植物更概括,然后花类的抽象级别较低。
我想知道此时我的理解是正确的还是书上的正确?请澄清一下。
我已经购买了带有应用程序的面向对象分析和设计,在第 64 页第 2 段解释了“是”层次结构,如下所示。
就其“是”层次而言,高级抽象是泛化的,而低级抽象是专门化的。因此,我们说 Flower 类比 Plant 类处于更高的抽象级别。
据我了解,我认为植物比植物更概括,然后花类的抽象级别较低。
我想知道此时我的理解是正确的还是书上的正确?请澄清一下。
我同意,这个引用是错误的。根据这里的定义,Plant 比 Flower 处于更高的抽象级别:定义是正确的,示例中的名称是转置的。
is-a 层次结构的植物和花卉示例可能是我听过的最糟糕的!
一辆车是一辆车。狗是哺乳动物。储蓄账户是-a(n) 账户。所有这些都是典型且易于理解的示例。
你引用的内容听起来不太对劲。假设 Flower 继承自 Plant,我会理解 Plant 比 Flower 具有更高的抽象级别。所以,
花卉is a
植物
但
植物不一定是花
我不会说“花是植物”的说法是正确的,在我看来,植物有 花。我认为缺少一些上下文。
我认为这本书的作者在这里解释了继承层次结构。如果一个实体位于层次结构的顶部,则它比层次结构中位于其下方的实体更概括(或抽象)。让一个实体继承自另一个实体但比其父实体更抽象(转换为从具体类继承的抽象类)是不好的设计。