1. gzyueqian
      13352868059

      Java培訓(xùn):如何解決Java中的多重繼承問題

      更新時間: 2022-10-26 14:51:33來源: 粵嵌教育瀏覽量:8998

        Java是當今最流行的面向?qū)ο缶幊陶Z言之一,因為它是獨立于平臺的,所以你可以在每種類型的設(shè)備和每種操作系統(tǒng)上找到Java應(yīng)用程序。由于Java相對容易學(xué)習,它是許多程序員最先學(xué)習的語言之一。如果你也對java感興趣,不妨報個java培訓(xùn)班,有專業(yè)講師面授指導(dǎo)教學(xué),還有更加系統(tǒng)全面的課程,讓學(xué)習更科學(xué),更有效。

        你應(yīng)該熟悉Java的一個重要特性是類繼承。繼承允許程序員通過促進類重用來優(yōu)化代碼。當你可以重用已經(jīng)測試和調(diào)試過的代碼時,軟件開發(fā)生命周期就會縮短,成本也會降低。雖然理論上是一個簡單的概念,但編碼繼承關(guān)系需要注意細節(jié)。對于多重繼承尤其如此,其中一個子類從多個父類繼承屬性。

        Java拒絕多重繼承關(guān)系,因為它們會產(chǎn)生歧義,但是如果你知道怎么做,有幾種方法可以達到同樣的效果。在本文中,我們將考慮多重繼承的問題,并討論Java中可供選擇的編碼選項。

        繼承術(shù)語

        要完全理解Java中的繼承,你需要熟悉基本的面向?qū)ο缶幊?OOP)繼承術(shù)語。在java培訓(xùn)學(xué)習中,既有理論知識課程,又有實訓(xùn)項目操作課程,讓你學(xué)以致用,真正掌握有用的技能。

        l 類:類是面向?qū)ο缶幊陶Z言中的基本模板結(jié)構(gòu)。類定義了一組對象的公共屬性。

        l 父類:也稱為基類或超類,父類是向子類提供特性的可擴展類。這就是可重用性發(fā)揮作用的地方。父類定義和函數(shù)在創(chuàng)建子類時被重用。

        l 子類:更一般地稱為子類,子類從另一個類繼承特性。子類是擴展類或派生類。

        l 繼承:父類和子類之間的關(guān)系。

        

        Java支持的繼承類型包括:

        l 單級繼承:當子類從單個父類派生特性時。

        l 多層繼承:這是單層繼承的分層形式。在多級繼承中,子類還可以充當其他子類的父類。每個級別之間的關(guān)系是線性的-沒有分支像多重繼承那樣在上面擴展。最終的子類具有它上面每個級別的特性。

        l 層次繼承:多重繼承的反義詞。在層次繼承中,單個父類有多個子類。因此,它不是在上面有分支,而是在下面分支。

        l 混合繼承:顧名思義,混合繼承是其他繼承類型的組合。

        想學(xué)習有關(guān)java的更多技能,不妨報個java培訓(xùn)班,這是快速掌握java技能的有效方法,可以讓你少走很多彎路。

        除了上面的繼承類型外,還有Java不支持的其他類型。

        l 多重繼承:在多重繼承中,一個子類有多個父類。雖然Java和JavaScript不支持多重繼承,但C++等OOP語言支持多重繼承。

        l 多路徑繼承:多層次繼承的混合,在多路徑繼承中,子類從父類的一個父類和幾個子類派生其特性和功能。因為多路徑繼承依賴于多重繼承,所以Java不支持使用它。

        為什么Java不支持多重繼承

        多重繼承的主要問題是它有可能在子類中產(chǎn)生歧義。在1995年的一份概述白皮書中,Java首席設(shè)計師James Gosling指出,多重繼承的問題是創(chuàng)建Java的動機之一。

        多重繼承固有的困難在菱形 問題中最為明顯。在菱形 問題中,父類A有兩個截然不同的子類B和C;即子類B和C擴展了類A。想了解java的更多特性,可以參加java培訓(xùn)學(xué)習,在短時間內(nèi)可以獲得快速提升。

        

        現(xiàn)在我們創(chuàng)建了一個新的子類D,它同時擴展了類B和類C。請注意,我們有多重繼承(D擴展了B和C)、層次繼承(B和C擴展了A)和多級繼承(D延伸了A、B、C)。

        在菱形問題中,子類B和C繼承父類A的方法。B和C都重寫繼承的方法。但B和C中的新方法相互沖突。最終子類D從其多個父類B和C繼承了兩個獨立且沖突的方法。不清楚D類應(yīng)該使用哪種方法,因此存在歧義。其他OOP編程語言實現(xiàn)了各種方法來解決多重繼承歧義。

        如何解決Java中的多重繼承問題

        多重繼承有問題并不意味著它沒有用。在許多情況下,你可能希望一個類具有其他幾個類的特性。但是你不能在Java中擴展多個類。那么Java是如何處理多重繼承問題的呢?

        它使用稱為接口的結(jié)構(gòu)。接口是抽象類型,它指定要實現(xiàn)的類的行為。因為它們是抽象的,所以接口不包含其行為的詳細說明。相反,這些類提供了接口行為的具體實現(xiàn)。在java培訓(xùn)中,有系統(tǒng)全面的理論知識和企業(yè)級實戰(zhàn)項目,可以讓你真正掌握java知識和技能,更好地進行項目開發(fā)。

        接口有幾個定義特征:

        l 與類不同,你不實例化接口。相反,類實現(xiàn)接口

        l 接口僅包含公共常量定義和方法頭

        l 接口只能擴展其他接口,不能擴展類

        l 接口可以擴展多個接口,類可以實現(xiàn)多個接口

        現(xiàn)在,我們可以通過接口有效地繞過菱形問題。回顧只有接口才能擴展其他接口,任何需要多重繼承特性的類都必須實現(xiàn)多個接口,我們可以重新定義菱形問題類。

        以前的A類、B類和C類現(xiàn)在變成了接口A、B和C。接口B和C仍然擴展接口A,但這些接口中沒有具體的函數(shù),只是定義了行為。類D仍然是一個類,它負責接口B和C中行為的具體實現(xiàn)。

        注意這里的一個關(guān)鍵區(qū)別:D類不是擴展接口B和C,而是實現(xiàn)它們。因此,你實際上沒有多重繼承。相反,你只是重新定義了問題。

        結(jié)論

        理解繼承對于任何有效的編碼人員都是必要的。對于Java程序員來說,了解繼承的局限性以及針對多重繼承的傳統(tǒng)問題的內(nèi)置Java解決方案同樣重要。如果你正在考慮如何快速學(xué)習java,那么參加java培訓(xùn)掌握更全面的知識和技能將是一個很好的開始。

      免費預(yù)約試聽課

      亚洲另类欧美综合久久图片区_亚洲中文字幕日产无码2020_欧美日本一区二区三区桃色视频_亚洲AⅤ天堂一区二区三区

      
      

      1. 日本乱理伦片中文 | 日本无遮挡吸乳叫声视频 | 性欧美大战久久久久久久 | 中文字幕激情欧美 | 中文字幕第一页在线 | 日本乱子伦视频免费观看 |