【发布时间】:2011-01-05 20:00:03
【问题描述】:
从 OOP 的角度来看,派生类和继承类之间有什么区别吗?还是只是术语?
【问题讨论】:
-
与您之前的问题完全相同。
-
@David - 谢谢 好的,我删除了另一个问题,必须提交两次......
标签: oop inheritance terminology class-hierarchy
从 OOP 的角度来看,派生类和继承类之间有什么区别吗?还是只是术语?
【问题讨论】:
标签: oop inheritance terminology class-hierarchy
使用继承时,被继承的类称为基类,继承类称为 派生类。
【讨论】:
派生类这个术语是 C++ 的首选术语,表示从另一个类继承的类,在 C++ 术语中称为基类。因此,在 C++ 中,您询问的术语是相同的。
【讨论】:
尼尔的回答让我有点困惑,所以我查了一些public sources。
考虑一个基类和一个子类(Java 术语中的SubClass extends BaseClass),而不是
所以在我看来,这两个术语定义了类之间的相同关系,但从不同的角度。
【讨论】:
Bertran Meyer 的继承术语(面向对象的软件构建,第 464 页):
基本约定和术语
除了“继承人”和“父母”之外,以下术语也很有用。
C 类的后代 是直接或间接继承自 C,包括 C 本身。 (正式地:C 或者递归地,一个 C 的继承人。) C 的 祖先 是一个 A 类,因此 C 是 A 的后代>.
在文献中你也会遇到“子类”和“超类”这两个词,但是 我们会远离他们,因为他们是模棱两可的;有时“子类”是指 继承人(直系后裔),有时用于更一般意义上的适当 后代,而且并不总是很清楚。此外,我们将看到“子集” 这个词的含义并不总是合理的。
【讨论】:
可能很有趣,如果你重写一个方法,你可以在 Delphi 中编写:
inherited; // so "inherited" is the base class
而不是
base.BaseImplementation(); // C#
【讨论】: