2010-01-16 100 views
9

从OOP的角度来看,派生类和继承类之间是否有区别?还是仅仅是术语?OOP派生类和继承类之间的区别?

+0

你前面的问题完全重复。 – 2010-01-16 11:10:46

+0

@David - 谢谢好的,我删除了其他问题,必须提交两次.... – 2010-01-16 11:13:25

回答

13

当使用继承,继承的类被称为基类,以及继承类被称为 派生的类。

+1

完全更改您的答案的te文本以反映另一个用户的答案在这里不被视为良好的形式。 – 2010-01-16 11:23:01

+0

@尼尔:恰恰相反。编辑你的答案,使其成为最好的答案是什么是所有关于。当然,剽窃并不好,但是我发现编辑是基于你的回答进行改进的,而不是明目张胆的版本,尤其是因为你的答案是C++特有的(不需要具体说明,但你确实如此)。 – 2010-01-16 11:31:00

+0

@Vinko需要具体说明 - 不同的语言使用不同的术语。例如,一个Smalltalk程序员会谈论超类和子类而不是基础和派生。 – 2010-01-16 11:35:41

5

术语派生类优选C++的说法为,从另一个类,在C++中的说法称为基类继承的类。所以在C++中,你询问的术语是相同的。

2

尼尔的回答让我困惑了一下,于是我查了一下public sources

考虑一个基类和(在Java中的术语SubClass extends BaseClass)一个子类,比

  • 类派生基类(子类是一个派生类基类)和
  • 子类继承自基类(基类是一个/所述继承子类的类)

因此,我觉得这两个术语定义的类之间,而是从不同的角度相同的关系。由贝特朗迈耶(面向对象的软件建设,p.464)

+0

C++中通常不使用术语子类 - 我不了解Java - 而OP也没有询问它。 – 2010-01-16 11:32:20

+2

但他并没有要求C++ ... – 2010-01-16 14:09:58

0

继承术语:

的基本惯例和术语

下列术语将除了有用的“继承人”和“父母”。

Ç后裔是直接或间接地继承 Ç,包括Ç本身的任何类。 (正式:要么Ç或递归,一个 嗣的Ç的后代。)的Ç 一种祖先是一类使得Ç后代。

在文献中,您还会遇到术语“子类”和“超类”,但我们将远离它们,因为它们不明确;有时“子类”意味着继承人(直系后裔),有时候它被用在更普遍的适当的后代中,并且它并不总是清楚哪一个。另外,我们会看到这个词的“子集”内涵并不总是合理的。

0

也许有趣,如果你覆盖的方法,在Delphi编写:

inherited; // so "inherited" is the base class 

,而不是

base.BaseImplementation(); // C#