2011-11-14 26 views
8

在面向對象編程中,「基類」是派生其他類的類(http://en.wikipedia.org/wiki/Base_class)。OOP中基類的相反之處是什麼?

但是,什麼是基類的相反?換句話說,什麼是沒有任何子類調用的類?

編輯:我正在尋找一個類沒有被分類的名稱,是在一個基類的多個父類的樹的繼承內部。

+3

有沒有必要有一個術語,它只是被稱爲一個類。 – dave

+3

* *未被分類的類和*不能被分類的類之間存在顯着差異。你的意思是? –

+0

我正在尋找一個尚未歸類的類的名字,是的。 – archmeta

回答

13

基類是相對術語。它只適用於考慮其派生類之一。下面是一些我認爲是相反的術語(並且大多數是正交的):

  • 基類與派生類;類似地超類VS子類
  • 抽象類VS具體類
  • 根類VS葉類
  • 密封(也最終)類VS可繼承(非密封)類
  • 嵌套類VS頂層類

抽象和(通常)根類設計爲基類。密封類不能是基類,因爲它們是不可繼承的。根類是一個沒有基類的類(在C#和Java中,這個類是Object)。葉類沒有子類,所以它不是基類;但它不一定是密封的。另一方面,密封類是總是葉類。

所以,

我要尋找的是一直沒有子類的類的名字,但

看來你正在尋找一個葉類但我不認爲它與基類相反。

1

在C#中,這些被稱爲密封類。您可以使用關鍵字sealed來指示一個類不會被繼承。 VB使用關鍵字NotInheritable。維基百科稱它們爲non-subclassable

4

我通常聽到葉類。 Java通過final執行它。

1

我密封類沒有從任何繼承。對我來說,與基類相反的是派生類,但作爲派生類並不排除它被繼承。

但聽起來像卡爾噸的答案可能是你在找什麼。

相關問題