關鍵區別——多重繼承與多級繼承
面向對象編程(OOP)是一種使用類和方法設計程序的範例。真實世界的場景可以映射到對象。因此,很容易構建軟件解決方案。類是構建對象的藍圖。它包含屬性和方法。例如,在創建student對象之前,應該有一個具有屬性和方法的類student。學生可以具有諸如學生id、名稱等屬性,以及諸如read、write、study等方法。方法描述行為,而屬性是屬性。創建類之後,可以使用它們創建對象。對象創建也稱為對象實例化。對象不是孤立存在的。它們與其他對象通信,數據在對象內傳遞。OOP的一個支柱是繼承。繼承的目的是提高代碼的可重用性。它將為現有類創建一個新的屬性類和方法類。現有的類稱為基類,新類稱為派生類。多重繼承和多級繼承是繼承類型。本文討論了它們之間的區別。多重繼承和多級繼承的關鍵區別在於,多重繼承是指一個類從許多基類繼承,而多級繼承是指一個類從派生類繼承,使派生類成為新類的基類。
目錄
1. 概述和主要區別
2. 什麼是多重繼承
3. 什麼是多層次遺傳
4. 多重遺傳與多級遺傳的相似性
5. 並排比較-表格形式的多重與多級繼承
6. 摘要
什麼是多重繼承(multiple inheritance)?
多重繼承是指一個類繼承多個基類。
A B和C是類。A和B是基類,C是派生類。C類必須同時管理基類A和B的依賴關係。多重繼承在軟件項目中並沒有得到廣泛的應用。它使系統更加複雜,因為一個類繼承了許多類。
例如,假設類A和類B都有一個同名的方法,即sum(),而類C派生這兩個類。創建C類型的對象並調用sum()方法後,可能會導致錯誤,因為兩個類都有相同的方法。編譯器不知道要調用哪個函數。因此,多重繼承增加了系統的複雜性。C++語言支持多繼承,但java、C語言等語言不支持多重繼承。相反,這些語言使用類似於類但不能實例化的接口。
什麼是多層次遺傳(multilevel inheritance)?
多級繼承是指一個類從派生類繼承,使派生類成為新類的基類。
多級遺傳有三個層次。B從類A繼承而C從類B繼承的中間類。A是B的基類,B是C的基類。
實現多級繼承的程序如下。程序是用Java編寫的。
根據上面的程序,類A是類B的基類,類B是類C的基類,類A的所有屬性和方法都可以被類B訪問,類B的所有屬性和方法都可以被C類訪問,因此,C類可以同時訪問A和B的屬性和方法。創建C類對象時,它是可以調用這三個方法A()、B()和C()。輸出將給出A,B,C。
什麼是多重遺傳與多級遺傳的相似性(the similarity between multiple and multilevel inheritance)?
- 這兩種類型都是繼承。
倍數(multiple)和多層次遺傳(multilevel inheritance)的區別
多重繼承與多級繼承 | |
多重繼承是一個類從多個基類繼承的繼承類型。 | 多級繼承是從派生類繼承的繼承類型,使派生類成為新類的基類。 |
使用 | |
多重繼承並沒有得到廣泛的應用,因為它使系統更加複雜。 | 多級遺傳被廣泛應用。 |
等級 | |
多重繼承有兩個類級別,即基類和派生類。 | 多級繼承有三個類級別,即基類、中間類和派生類。 |
總結 - 倍數(multiple) vs. 多層次遺傳(multilevel inheritance)
繼承是面向對象編程的主要支柱。遺傳有不同的類型,有單級繼承、多級繼承、多重繼承、等級繼承和混合繼承。單級繼承有一個基類和一個派生類。層次繼承有一個基類和許多派生類。混合遺傳是多層次遺傳和多重遺傳的結合。本文介紹了多重繼承與多級繼承的區別。多重繼承和多級繼承的區別在於,多重繼承是指一個類從許多基類繼承,而多級繼承是指一個類從派生類繼承,使派生類成為新類的基類。多級繼承比多重繼承應用廣泛。
下載pdf多重vs多級繼承
你可以下載這篇文章的PDF版本,並按照引文說明離線使用。請在這裡下載PDF版本多重繼承和多級繼承的區別
引用
1.Singh,Chaitanya等人。Java中的繼承類型:單繼承、多繼承、多級繼承和混合繼承初學者圖書網2013年12月6日。在這裡可以買到2。tutorialspoint.com網站. “Java繼承。”要點。可在這裡找到
2tutorialspoint.com網站. “Java繼承。”