2010-01-16 95 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#