【发布时间】:2017-04-19 01:17:41
【问题描述】:
关于泛化和继承的研究让我感到困惑,两者都给出了相同的含义,就好像某些东西正在被继承......但无法弄清楚实际的区别。
【问题讨论】:
标签: object-oriented-analysis ooad
关于泛化和继承的研究让我感到困惑,两者都给出了相同的含义,就好像某些东西正在被继承......但无法弄清楚实际的区别。
【问题讨论】:
标签: object-oriented-analysis ooad
泛化是我们用来表示在 UML 中将公共属性抽象为基类的术语。
当我们在编程语言中实现泛化时,它被称为继承。
因此,泛化和继承是相同的,只是术语不同,具体取决于使用它的上下文。
【讨论】:
泛化/特化关系在面向对象的编程语言中通过继承实现。
一些形式的概括
层次结构:在层次结构的情况下,共同点被组织成树状结构形式。在任何子树的根部都可以找到该根的所有后代共有的所有属性和行为。
通用性:在这种情况下,通用性是借助参数来表达的。各种专业化通过它们为参数提供的内容来区分。例如,使用泛型可以通过“任何东西的堆栈”的泛化来表示“堆栈”的公共属性,其中“任何东西”表示参数。
多态性:多态性捕获算法中的共性。多态性允许将嵌套逻辑(或 case 语句)折叠为单个 case,其中以统一的方式处理不同的对象类型。
模式:模式表示常见设计问题的一般解决方案(关键组件和关系)。单个组件的属性和行为仅被部分定义,以允许模式被解释并应用于广泛的情况。