久久精品国产亚洲高清|精品日韩中文乱码在线|亚洲va中文字幕无码久|伊人久久综合狼伊人久久|亚洲不卡av不卡一区二区|精品久久久久久久蜜臀AV|国产精品19久久久久久不卡|国产男女猛烈视频在线观看麻豆

千鋒教育-做有情懷、有良心、有品質(zhì)的職業(yè)教育機(jī)構(gòu)

手機(jī)站
千鋒教育

千鋒學(xué)習(xí)站 | 隨時(shí)隨地免費(fèi)學(xué)

千鋒教育

掃一掃進(jìn)入千鋒手機(jī)站

領(lǐng)取全套視頻
千鋒教育

關(guān)注千鋒學(xué)習(xí)站小程序
隨時(shí)隨地免費(fèi)學(xué)習(xí)課程

當(dāng)前位置:首頁  >  技術(shù)干貨  > 如何解決Java中的多重繼承問題

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

來源:千鋒教育
發(fā)布人:syq
時(shí)間: 2022-09-16 15:11:01 1663312261

  Java是當(dāng)今最流行的面向?qū)ο缶幊陶Z言之一。由于它是獨(dú)立于平臺(tái)的,因此您可以在每種類型的設(shè)備和每個(gè)操作系統(tǒng)上找到 Java 應(yīng)用程序。而且由于Java相對(duì)容易學(xué)習(xí),因此它是許多程序員學(xué)習(xí)的第一批語言之一。

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

  您應(yīng)該熟悉的 Java 的一個(gè)重要特性是類繼承。繼承允許程序員通過促進(jìn)類重用來優(yōu)化代碼。如果可以重用已經(jīng)過測(cè)試和調(diào)試的代碼,軟件開發(fā)生命周期將變得更短且成本更低。

  雖然理論上是一個(gè)簡單的概念,但編碼繼承關(guān)系需要注意細(xì)節(jié)。對(duì)于多重繼承尤其如此,其中單個(gè)子類從多個(gè)父類繼承屬性。

  Java拒絕多重繼承關(guān)系,因?yàn)樗鼈儠?huì)產(chǎn)生歧義,但是如果您知道該怎么做,有幾種方法可以實(shí)現(xiàn)許多相同的效果。

  在本文中,我們將研究多重繼承的問題,并討論Java中的替代編碼選項(xiàng)。

  繼承術(shù)語

  有時(shí),要成為一名成功的程序員,你必須學(xué)會(huì)解決問題,以便找到常見錯(cuò)誤或問題的解決方法。這是安全智能編碼的必要部分。

  其中一個(gè)問題涉及Java中的多重繼承(或者更確切地說,缺乏多重繼承)。

1

  要完全理解 Java 中的繼承,您需要熟悉基本的面向?qū)ο缶幊?(OOP) 繼承術(shù)語。

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

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

  兒童班:更一般地稱為子類,子類從另一個(gè)類繼承特征。子類是擴(kuò)展類或派生類。

  遺產(chǎn):父類和子類之間的關(guān)系。

  輸出讀取繼承類型

  目前有許多流行的面向?qū)ο缶幊陶Z言在使用,包括 Java、C++、JavaScript、Python、PHP、Ruby 和 Perl。雖然繼承是這些 OOP 語言的常見概念,但并非所有繼承類型都存在于每種語言中。

  了解您正在使用的特定語言中的一般繼承類型和繼承限制至關(guān)重要。您對(duì)繼承的了解越多,您就越能有效地成為一名軟件開發(fā)人員。

  Java 支持的繼承類型包括:

  單級(jí)繼承:當(dāng)子類從單個(gè)父類派生功能時(shí)。

  多級(jí)繼承:這是單級(jí)繼承的分層形式。在多級(jí)繼承中,子類還可以充當(dāng)其他子類的父類。每個(gè)級(jí)別之間的關(guān)系都是線性的 - 沒有分支像多重繼承那樣延伸到上面。然后,最終的子類具有其上方每個(gè)級(jí)別的功能。

  分層繼承:與多重繼承相反。在分層繼承中,單個(gè)父類具有多個(gè)子類。因此,它不是在上面有分支,而是在下面分支。

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

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

  多重繼承:在多重繼承中,一個(gè)子類具有多個(gè)父類。雖然 Java 和 JavaScript 不支持多重繼承,但 OOP 語言(如C++支持多重繼承)

  多路徑繼承:多級(jí)、多級(jí)和分層繼承的混合體,在多路徑繼承中,子類從父類和父類的多個(gè)子類派生其特性和功能。因?yàn)槎嗦窂嚼^承依賴于多重繼承,所以 Java 不支持它的使用。

  為什么 Java 不支持多重繼承

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

  多重繼承所固有的困難在鉆石問題中表現(xiàn)得最為明顯。在菱形問題中,父類 A 有兩個(gè)不同的子類 B 和 C;也就是說,子類 B 和 C 擴(kuò)展了類 A。

2

  現(xiàn)在我們創(chuàng)建一個(gè)新的子類 D,它同時(shí)擴(kuò)展了類 B 和類 C.請(qǐng)注意,我們有多重繼承(D 擴(kuò)展 B 和 C)、分層繼承(B 和 C 擴(kuò)展 A)和多級(jí)繼承(D 擴(kuò)展 A、B 和 C)。

  在菱形問題中,子類 B 和 C 從父類 A 繼承方法。B 和 C 都重寫繼承的方法。但是B和C中的新方法相互沖突。

  終極子類 D 從其多個(gè)父級(jí) B 和 C 繼承兩個(gè)獨(dú)立且沖突的方法。不清楚應(yīng)該使用哪種方法類D,因此存在歧義。其他 OOP 編程語言實(shí)現(xiàn)了各種方法來解決多重繼承歧義。

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

  僅僅因?yàn)槎嘀乩^承有問題并不意味著它沒有用。在許多情況下,您可能希望一個(gè)類具有來自其他多個(gè)類的功能。

  想想當(dāng)你成為一個(gè)非常成功的軟件開發(fā)人員時(shí),你會(huì)買到特斯拉跑車。它將從跑車類和電動(dòng)汽車類中汲取特征。

  或者,也許您正在使用私有瀏覽器閱讀本文,該文章具有在線數(shù)據(jù)隱私解決方案類和常規(guī) Internet 瀏覽器類的功能。

  但是你不能在Java中擴(kuò)展多個(gè)類。那么Java如何處理多重繼承問題呢?

  好吧,它使用稱為接口的結(jié)構(gòu)。接口是抽象類型,用于指定要實(shí)現(xiàn)的類的行為。由于它們是抽象的,因此接口不包含有關(guān)其行為的詳細(xì)說明。相反,這些類提供了接口行為的具體實(shí)現(xiàn)。

  接口具有以下幾個(gè)定義特征:

  與類不同,您不實(shí)例化接口。相反,類實(shí)現(xiàn)接口

  接口僅包含公共常量定義和方法標(biāo)頭

  接口只能擴(kuò)展其他接口,而不能擴(kuò)展類

  接口可以擴(kuò)展多個(gè)接口,類可以實(shí)現(xiàn)多個(gè)接口

  現(xiàn)在,我們可以有效地繞過接口的菱形問題?;叵胍幌拢挥薪涌谥荒軘U(kuò)展其他接口,并且任何需要多個(gè)繼承特征的類都必須實(shí)現(xiàn)多個(gè)接口,我們可以重新定義菱形問題類。

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

  請(qǐng)注意此處的一個(gè)關(guān)鍵區(qū)別:D 類不是擴(kuò)展接口 B 和 C。相反,它正在實(shí)施它們。因此,您實(shí)際上沒有多重繼承。相反,你只是重新定義了問題。

  了解繼承對(duì)于任何有效的編碼人員都是必要的。對(duì)于 Java 程序員來說,了解繼承的局限性以及針對(duì)傳統(tǒng)多重繼承問題的內(nèi)置 Java 解決方法同樣重要。

  學(xué)習(xí)如何在Java中放置接口以重新創(chuàng)建多重繼承的效果將提高您的效率和可雇用性。

tags:
聲明:本站稿件版權(quán)均屬千鋒教育所有,未經(jīng)許可不得擅自轉(zhuǎn)載。
10年以上業(yè)內(nèi)強(qiáng)師集結(jié),手把手帶你蛻變精英
請(qǐng)您保持通訊暢通,專屬學(xué)習(xí)老師24小時(shí)內(nèi)將與您1V1溝通
免費(fèi)領(lǐng)取
今日已有369人領(lǐng)取成功
劉同學(xué) 138****2860 剛剛成功領(lǐng)取
王同學(xué) 131****2015 剛剛成功領(lǐng)取
張同學(xué) 133****4652 剛剛成功領(lǐng)取
李同學(xué) 135****8607 剛剛成功領(lǐng)取
楊同學(xué) 132****5667 剛剛成功領(lǐng)取
岳同學(xué) 134****6652 剛剛成功領(lǐng)取
梁同學(xué) 157****2950 剛剛成功領(lǐng)取
劉同學(xué) 189****1015 剛剛成功領(lǐng)取
張同學(xué) 155****4678 剛剛成功領(lǐng)取
鄒同學(xué) 139****2907 剛剛成功領(lǐng)取
董同學(xué) 138****2867 剛剛成功領(lǐng)取
周同學(xué) 136****3602 剛剛成功領(lǐng)取
相關(guān)推薦HOT
抖店入駐收費(fèi)多少?開抖店費(fèi)用是多少?

如果要開通抖音小店,需要先把抖音賬號(hào)開通商品櫥窗功能。入駐之后,可以選擇頭條賬號(hào)、抖音賬號(hào)、火山賬號(hào)任一類型注冊(cè)或登錄。那開個(gè)抖店要多...詳情>>

2023-09-19 07:50:26
想做直播帶貨的貨源哪里來?怎么找貨源?

現(xiàn)如今直播推廣的方式是非常火的,有著非常多的賣家都是利用直播推廣店鋪產(chǎn)品,效果也是非常不錯(cuò)。但很多賣家想要了解現(xiàn)在直播帶貨的話什么產(chǎn)品...詳情>>

2023-09-19 07:47:16
適合三農(nóng)領(lǐng)域的名字?有何技巧?

現(xiàn)在在抖音上很多博主會(huì)選擇直播來賺取更多的流量以及利潤,直播間的東西也有很多讓消費(fèi)者信任并且喜歡的,而且隨著越來越多人直播,很多農(nóng)產(chǎn)品...詳情>>

2023-09-19 07:06:05
抖店商品發(fā)布違規(guī)怎么申訴?有何規(guī)則?

抖店服務(wù)市場(chǎng)服務(wù)商發(fā)布違禁信息如何處理?情節(jié)嚴(yán)重程度判定原則:違規(guī)嚴(yán)重等級(jí)主要通過服務(wù)商違規(guī)次數(shù)、造成后果的嚴(yán)重程度、獲利或?qū)е聯(lián)p失的...詳情>>

2023-09-19 06:59:55
“泛垂直起號(hào)”可能是2023年最高效的起號(hào)方式

這可能是明年最好用的旗號(hào)方式了,今天教大家一個(gè)很野,但是可以讓你三天漲1000粉的偏方。去年前年啊,每個(gè)人都教你,誰知七號(hào)對(duì)著自己的產(chǎn)品拍...詳情>>

2023-09-19 06:37:38
開班信息
北京校區(qū)
  • 北京校區(qū)
  • 大連校區(qū)
  • 廣州校區(qū)
  • 成都校區(qū)
  • 杭州校區(qū)
  • 長沙校區(qū)
  • 合肥校區(qū)
  • 南京校區(qū)
  • 上海校區(qū)
  • 深圳校區(qū)
  • 武漢校區(qū)
  • 鄭州校區(qū)
  • 西安校區(qū)
  • 青島校區(qū)
  • 重慶校區(qū)
  • 太原校區(qū)
  • 沈陽校區(qū)
  • 南昌校區(qū)
  • 哈爾濱校區(qū)