第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

為什么Java或C#不允許多重繼承?

為什么Java或C#不允許多重繼承?

紅糖糍粑 2019-07-20 12:49:21
為什么Java或C#不允許多重繼承?我知道Java和C#不允許多次繼承。許多書只是說,多重繼承是不允許的。但是它可以通過使用接口來實現(xiàn)。沒有人討論為什么不允許這樣做。有人能準(zhǔn)確地告訴我為什么不允許這樣做嗎?
查看完整描述

3 回答

?
qq_花開花謝_0

TA貢獻1835條經(jīng)驗 獲得超7個贊

理由:由于Java的簡單性,它非常受歡迎,而且易于編寫代碼。

因此,對于程序員來說,不管Java開發(fā)人員感到什么困難和復(fù)雜,他們都試圖避免它。這類財產(chǎn)之一是多重繼承。

  1. 他們回避指針
  2. 他們避免了多重繼承。

多重繼承的問題:鉆石問題。

:

  1. 假設(shè)A類有一個方法FY()。B類和C類源于A類。
  2. 類B和C都重寫了方法FY()。
  3. 現(xiàn)在假設(shè)D類繼承了B類和C類(只是假設(shè))
  4. 為D類創(chuàng)建對象。
  5. D=新D();
  6. 并嘗試訪問d.fan();=>它是調(diào)用B類的FINY()還是調(diào)用C類的FUN()?

這就是鉆石問題中存在的模棱兩可之處。

解決這個問題并非不可能,但它會給程序員帶來更多的混亂和復(fù)雜性。它造成的問題比它試圖解決的更多。

但是,任何方法都可以通過使用接口間接地實現(xiàn)多重繼承。


查看完整回答
反對 回復(fù) 2019-07-20
  • 3 回答
  • 0 關(guān)注
  • 689 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號