關鍵區別-超類與子類
在面向對象編程(OOP)中,系統是用對象建模的。這些對象是使用類創建的。類是用來創建對象的藍圖或描述。對象創建也稱為對象實例化。每個對象都在與其他對象通信。一個程序或軟件可以使用面向對象的編程來開發。繼承是OOP中的一個主要概念。它提高了代碼的可重用性。它不需要從一開始就實現一個程序,而是允許將已經存在的類的屬性和方法繼承到一個新類中。這有助於使程序更易於管理。超類和子類是與繼承相關的兩個術語。本文討論了超類和子類之間的區別。超類和子類之間的關鍵區別在於,超類是派生新類的現有類,而子類是繼承超類屬性和方法的新類。
目錄
1. 概述和主要區別
2. 什麼是超類
3. 什麼是子類
4. 超類與子類的相似性
5. 並列比較-表格形式的超類與子類
6.摘要
什麼是超類(superclass)?
在繼承中,派生新類的現有類稱為超類。它也被稱為父類或基類。
有不同的繼承類型。下面的例子說明了這一點。把A B和C看作類。
根據上面的圖表,超類因每個繼承類型而異。在單級繼承中,A是超類。在多級繼承中,A是B的超類,B是C的超類。在分層繼承中,A是B和C的超類。在多重繼承中,A和B都是C的超類。
混合遺傳是多層次和多層次遺傳的結合。在左圖中,A是B、C和B的超類,C是D的超類。在右邊的圖中,A是B和B的超類,D是C的超類。
參考下面用Java編寫的程序。
根據上面的程序,類A有sum()和sub()方法。類B有multiply()方法。類B是對類A的擴展,因此,類B可以訪問類A的屬性和方法,因此,類A是超類。使用類B的引用類型來創建對象。因此,對象可以訪問sum()、sub()和multiply()等所有方法。如果超類引用類型用於對象創建,則無法訪問類B的成員。e、 因此,超類引用不能調用multiply()方法,因為該方法屬於類B。
什麼是子類(subclass)?
根據上述圖表,子類根據每個繼承類型而不同。在單繼承中,B是子類。在多級繼承中,B是A的子類,C是B的子類,在層次繼承B和C是A的子類,在多個繼承中,C是A和B的子類。
在混合繼承中,左邊的圖B和C是A的子類。D是B和C的子類。在右邊的圖中,B是A的子類。C是B和D的子類。
根據上面的繼承程序,B類是對A類的擴展,因此,B類可以訪問A類的所有屬性和方法。B類是繼承自A類的新類,稱為子類。它也被稱為子類或派生類。類B有multiply()方法,它還可以使用繼承訪問類A的sum()和sub()方法。
什麼是超類與子類的相似性(the similarity between superclass and subclass)?
- 兩者都與遺傳有關。
超類(superclass)和子類(subclass)的區別
超類與子類 | |
在實現繼承時,派生新類的現有類是超類。 | 在實現繼承時,從超類繼承屬性和方法的類是子類。 |
同義詞 | |
超類被稱為基類、父類。 | 子類稱為派生類、子類。 |
功能 | |
超類不能使用子類的屬性和方法。 | 子類可以使用超類的屬性和方法。 |
單級繼承 | |
有一個超類。 | 有一個子類。 |
等級繼承 | |
有一個超類 | 有許多子類。 |
多重繼承 | |
有很多超類。 | 有一個子類。 |
總結 - 超類(superclass) vs. 子類(subclass)
繼承是OOP的一個概念。它允許使用現有類的屬性和方法由新類訪問。繼承的類是超類,派生類是子類。超類和子類的區別在於,超類是從中派生新類的現有類,而子類是繼承超類的屬性和方法的新類。
下載pdf超類vs子類
你可以下載這篇文章的PDF版本,並按照引文說明離線使用。請在此下載PDF版本超類和子類的區別