倍數(multiple)和多層次遺傳(multilevel inheritance)的區別

面向物件程式設計(OOP)是一種使用類和方法設計程式的範例。真實世界的場景可以對映到物件。因此,很容易構建軟體解決方案。類是構建物件的藍圖。它包含屬性和方法。例如,在建立student物件之前,應該有一個具有屬性和方法的類student。學生可以具有諸如學生id、名稱等屬性,以及諸如read、write、study等方法。方法描述行為,而屬性是屬性。建立類之後,可以使用它們建立物件。物件建立也稱為物件...

關鍵區別——多重繼承與多級繼承

面向對象編程(OOP)是一種使用類和方法設計程序的範例。真實世界的場景可以映射到對象。因此,很容易構建軟件解決方案。類是構建對象的藍圖。它包含屬性和方法。例如,在創建student對象之前,應該有一個具有屬性和方法的類student。學生可以具有諸如學生id、名稱等屬性,以及諸如read、write、study等方法。方法描述行為,而屬性是屬性。創建類之後,可以使用它們創建對象。對象創建也稱為對象實例化。對象不是孤立存在的。它們與其他對象通信,數據在對象內傳遞。OOP的一個支柱是繼承。繼承的目的是提高代碼的可重用性。它將為現有類創建一個新的屬性類和方法類。現有的類稱為基類,新類稱為派生類。多重繼承和多級繼承是繼承類型。本文討論了它們之間的區別。多重繼承和多級繼承的關鍵區別在於,多重繼承是指一個類從許多基類繼承,而多級繼承是指一個類從派生類繼承,使派生類成為新類的基類。

目錄

1. 概述和主要區別
2. 什麼是多重繼承
3. 什麼是多層次遺傳
4. 多重遺傳與多級遺傳的相似性
5. 並排比較-表格形式的多重與多級繼承
6. 摘要

什麼是多重繼承(multiple inheritance)?

多重繼承是指一個類繼承多個基類。

倍數(multiple)和多層次遺傳(multilevel inheritance)的區別

圖01:多重繼承

A B和C是類。A和B是基類,C是派生類。C類必須同時管理基類A和B的依賴關係。多重繼承在軟件項目中並沒有得到廣泛的應用。它使系統更加複雜,因為一個類繼承了許多類。

例如,假設類A和類B都有一個同名的方法,即sum(),而類C派生這兩個類。創建C類型的對象並調用sum()方法後,可能會導致錯誤,因為兩個類都有相同的方法。編譯器不知道要調用哪個函數。因此,多重繼承增加了系統的複雜性。C++語言支持多繼承,但java、C語言等語言不支持多重繼承。相反,這些語言使用類似於類但不能實例化的接口。

什麼是多層次遺傳(multilevel inheritance)?

多級繼承是指一個類從派生類繼承,使派生類成為新類的基類。

倍數(multiple)和多層次遺傳(multilevel inheritance)的區別

圖02:多級繼承

多級遺傳有三個層次。B從類A繼承而C從類B繼承的中間類。A是B的基類,B是C的基類。

實現多級繼承的程序如下。程序是用Java編寫的。

倍數(multiple)和多層次遺傳(multilevel inheritance)的區別

圖03:實現多級繼承的程序

根據上面的程序,類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繼承。”

  • 發表於 2020-10-19 20:00
  • 閱讀 ( 50 )
  • 分類:科技

你可能感興趣的文章

多基因遺傳(polygenic inheritance)和多菌性(pleiotropy)的區別

...與多效性的表格形式 6. 摘要 什麼是多基因遺傳(polygenic inheritance)? 多基因遺傳是指單個表型性狀受多個基因控制的現象。它也被稱為數量遺傳。簡單地說,多基因遺傳是指單個表型性狀由兩個或多個基因控制。因此,多個基因...

  • 發佈於 2020-09-16 05:58
  • 閲讀 ( 44 )

混合(blending)和微粒遺傳(particulate inheritance)的區別

...表格形式混合與微粒遺傳 6. 摘要 什麼是混合遺傳(blending inheritance)? 混合遺傳是一種早期理論,認為後代從父母那裡得到遺傳物質的混合物。因此,後代表現出介於雙親之間的中間特徵。換言之,混合理論認為,雙親產生的後...

  • 發佈於 2020-09-22 19:21
  • 閲讀 ( 52 )

共顯性(codominance)和多重等位基因(multiple alleles)的區別

...然。短角牛也可以觀察到共顯性。 什麼是多個等位基因(multiple alleles)? 如果一個性狀有兩個以上不同的等位基因,我們稱之為多重等位基因。換言之,多重等位基因是三個或更多不同的等位基因編碼的一個特定的特徵。人類ABO...

  • 發佈於 2020-09-26 00:32
  • 閲讀 ( 89 )

白血病(leukemia)和多發性骨髓瘤(multiple myeloma)的區別

...決於潛在的基因突變和癌症型別。 什麼是多發性骨髓瘤(multiple myeloma)? 多發性骨髓瘤或血漿細胞的異常增殖與一系列異常相關,包括血清鈣水平的升高和異常血漿細胞分泌的副蛋白導致的血液厚度增加。而且,當漿細胞滲入骨...

  • 發佈於 2020-09-30 11:18
  • 閲讀 ( 46 )

聚合水果(aggregate fruit)和多果(multiple fruit)的區別

...和檸檬是幾種產生聚合水果的植物。 什麼是多種水果(a multiple fruit)? 多果或複合果是由花序衍生的果實。因此,多果果是一個花序中許多花的雌雄同體形成的果實。也就是說,多個果實中的每一個小果實都來自花序的單獨花朵...

  • 發佈於 2020-10-15 09:20
  • 閲讀 ( 61 )

細胞質遺傳(cytoplasmic inheritance)和核遺傳(nuclear inheritance)的區別

...遺傳與板狀遺傳比較 6. 摘要 什麼是細胞質遺傳(cytopla**ic inheritance)? 細胞質遺傳是一種涉及細胞質細胞器DNA的遺傳。在這種遺傳中,後代接受來自細胞質細胞器的基因(血漿基因或核外基因)。線粒體和葉綠體含有由DNA組成的...

  • 發佈於 2020-10-16 03:40
  • 閲讀 ( 55 )

定比例律(law of definite proportions)和多比例定律(law of multiple proportions)的區別

...學顯示了基於元素來源的變化。 什麼是多比例定律(law of multiple proporti***)? 多比例定律指出,當兩個元素相互結合形成一個以上的化合物時,一個元素的權重與另一個元素的固定權重成小整數比。 圖02:多重比例定律的解釋 這...

  • 發佈於 2020-10-18 04:19
  • 閲讀 ( 61 )

二元裂變(binary fission)和多重裂變(multiple fission)的區別

...部分都有相同的遺傳物質和細胞組成。 什麼是多重裂變(multiple fission)? 多重分裂是單細胞原生動物(原生動物和藻類)中的一種無性繁殖方式。它是將一個實體分成許多部分的過程,這些部分可以成長為類似原始生物的新有機...

  • 發佈於 2020-10-18 18:17
  • 閲讀 ( 54 )

超類(superclass)和子類(subclass)的區別

...。在多重繼承中,A和B都是C的超類。 混合遺傳是多層次和多層次遺傳的結合。在左圖中,A是B、C和B的超類,C是D的超類。在右邊的圖中,A是B和B的超類,D是C的超類。 參考下面用Java編寫的程式。 圖03:Java中的繼承程式 根據上面...

  • 發佈於 2020-10-19 19:56
  • 閲讀 ( 41 )

多型性(polymorphism)和oop中的繼承(inheritance in oop)的區別

...向物件程式設計中的一個主要概念。 什麼是oop中的繼承(inheritance in oop)? 參考下面用Java編寫的程式。 圖03:繼承示例 根據上面的程式,A類有sum()方法,B類有sub()方法。 類A的sum()方法可以在B類中使用extend關鍵字。重用...

  • 發佈於 2020-10-19 21:16
  • 閲讀 ( 58 )
z78328084
z78328084

0 篇文章

作家榜

  1. admin 0 文章
  2. 孫小欽 0 文章
  3. JVhby0 0 文章
  4. fvpvzrr 0 文章
  5. 0sus8kksc 0 文章
  6. zsfn1903 0 文章
  7. w91395898 0 文章
  8. SuperQueen123 0 文章

相關推薦