从面向对象编程的角度来看,派生类和继承类之间有什么区别吗?或者这只是术语上的差异?
从面向对象编程的角度来看,派生类和继承类之间有什么区别吗?或者这只是术语上的差异?
在使用继承时,被继承的类称为基类(Base Class),而继承它的类称为派生类(Derived Class)。
派生类是C++中用于表示从另一个类(在C++中称为基类)继承的类的术语。因此,在C++中,您所询问的术语是相同的。
尼尔的回答有点让我困惑,所以我查了一些公开来源。
考虑一个基类和一个子类(在Java术语中,SubClass extends BaseClass
),那么
因此,在我看来,这两个术语定义了两个不同角度下类之间的相同关系。
如果你要重写一个方法,在Delphi中你需要这样写:
inherited; // so "inherited" is the base class
替代
base.BaseImplementation(); // C#
Bertran Meyer在《面向对象软件构造》第464页中提到的继承术语:
基本约定和术语
除了“继承者”和“父类”之外,以下术语也很有用。
类C的后代是直接或间接继承自C的任何类,包括C本身。(形式上:要么是C,要么是C的继承者的后代。) C的祖先是一个类A,使得C是A的后代。
在文献中,您还会遇到“子类”和“超类”这些术语,但我们将远离它们,因为它们是模棱两可的;有时“子类”意味着继承者(直接后代),有时它在更一般的意义上使用,表示适当的后代,而且并不总是清楚的。此外,我们将看到,“子集”这个词的内涵并不总是合理的。