2014-01-17 72 views
0

我熟悉OOP的實際方面。現在我正在寫一篇技術文檔,並質疑我對術語的使用。命名法:OOP中的類型關係

enter image description here

把這個類層次結構。每個類都有零個,一個或多個(多繼承)類,它直接從中派生出來。對於B,這是A.我會說A是B的基類超類(可互換)。

相反,一個類可以有任何數量的類直接從它派生。我會說B和C是A的派生類小類,又可互換。

然而,還必須有一個術語來指所有類別的一個類直接或間接地從繼承而來。從D的角度來看,你會如何稱呼{A,B}?

而且我錯過了所有類的另一個術語直接或間接地從一個類派生的。你從A的角度如何稱呼{B,C,D,E}?

+0

你在推翻它。 _Derived_,_child_,_subclass_都是有效的術語,它告訴你B/C/D/E類繼承的事實A.直接或間接的後代,由於Liskov替換原理,在實踐中應該沒有關係 – MikeSW

回答

0

好問題。在這種情況下,A是根類,因爲所有其他類都從它繼承。所有對象下降從A,或者是A的直接或間接子類。相反也是如此。 B是D的直接超類,A是間接超類。我想你可以使用祖先作爲下降/後代的反義詞,但我以前沒有見過。

+0

這意味着術語「子類」/「超類」本身是不明確的。具體來說,必須說「直接」與「間接」子類/超類。我感覺合理。 –