派生类和继承类之间的OOP差异?

派生类和继承类之间的OOP差异?,oop,inheritance,terminology,class-hierarchy,Oop,Inheritance,Terminology,Class Hierarchy,从OOP的角度来看,派生类和继承类之间有什么区别吗?还是仅仅是术语?使用继承时,继承的类称为基类,继承的类称为 派生类.< /p> 术语“强>派生类< /强>是继承另一个类的首选C++语句,在C++中称为基类< /强>。所以C++中你所问的术语是相同的。< / P > < P >尼尔的回答让我有点困惑,所以我检查了一些。 考虑基类和子类(子类扩展了Java术语中的基类),而不是 子类派生基类(子类是基类的派生类)和 子类继承自基类(基类是子类的继承类) 因此,在我看来,这两个术语定义了to类

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

使用继承时,继承的类称为基类,继承的类称为
派生类.< /p> 术语“强>派生类< /强>是继承另一个类的首选C++语句,在C++中称为<强>基类< /强>。所以C++中你所问的术语是相同的。< / P > < P >尼尔的回答让我有点困惑,所以我检查了一些。

考虑基类子类
子类扩展了Java术语中的基类
),而不是

  • 子类派生基类(子类是基类的派生类)和
  • 子类继承自基类(基类是子类的继承类)

因此,在我看来,这两个术语定义了to类之间相同的关系,但从不同的角度进行定义。

Bertran Meyer的继承术语(面向对象的软件构造,第464页):

基本惯例和术语

除了“继承人”和“父母”之外,下列术语也很有用

类的后代是直接或间接继承自 C,包括C本身。(形式上:或者是C,或者是递归地,一个 C的继承人 C祖先是a类,因此Ca的后代

在文献中,你也会遇到术语“子类”和“超类”,但是 我们将远离他们,因为他们模棱两可;有时“子类”的意思是 继承人(直系后裔),有时用于更一般意义上的适当继承 后代,而且并不总是清楚是哪一个。此外,我们将看到“子集”
这个词的内涵并不总是合理的。

如果您重写一个方法,在Delphi中您可能会写:

inherited; // so "inherited" is the base class
而不是

base.BaseImplementation(); // C#

与上一个问题完全相同。@David-谢谢,好的,我删除了另一个问题,一定提交了两次……完全改变你答案的文本以反映另一个用户的答案在这里被认为是不好的形式。@Neil:相反。编辑你的答案,使之成为最好的答案,这就是所谓的。当然剽窃不是很好,但是我发现编辑是基于你的答案而不是一个明目张胆的复制品,特别是因为你的答案是C++特定的(没有必要使它具体化,但是你确实如此)。VIKOO有必要使它具体化——不同的语言使用不同的命名。例如,一个Smalltalk程序员会谈论超类和子类,而不是基类和派生类。@Neil:那么,如果你这么认为的话,你现在有机会改进你的答案,使它比基于你自己的答案更好。顺便说一句,考虑到这个问题,我认为没有必要特定于语言。问题是关于继承和派生的,虽然有些语言可能根本不使用这些术语,但我怀疑是否有任何语言使用这些术语并代表不同的事物。如果这种语言存在,那将是一个值得回答的补充。术语子类在C++中不常用——我不知道java——而且OP没有问过它。