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

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

Java接口如何模擬多重繼承?

Java接口如何模擬多重繼承?

慕姐4208626 2019-10-24 14:19:14
我正在閱讀“ Java教程”(第2次)。我剛讀完有關(guān)接口的部分,但仍然不了解Java接口如何模擬多重繼承。有比書中更清楚的解釋嗎?
查看完整描述

3 回答

?
慕容3067478

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

假設(shè)您的域中有兩種東西:卡車和廚房


卡車具有driveTo()方法,而Kitchens具有cook()方法。


現(xiàn)在,假設(shè)Pauli決定從送貨卡車的后面出售比薩餅。他想要一種可以與drive()和cook()一起使用的東西。


在C ++中,他將使用多重繼承來做到這一點。


在Java中,這被認為太危險了,因此您可以從主類繼承,但是可以從接口“繼承”行為,這些行為對于所有意圖和目的都是抽象類,沒有字段或方法實現(xiàn)。


因此,在Java中,我們傾向于使用委托來實現(xiàn)多重繼承:


Pauli對卡車進行了子類化,并在一個名為廚房的成員變量中為卡車添加了廚房。他通過調(diào)用kitchen.cook()實現(xiàn)了Kitchen接口。


class PizzaTruck extends Truck implements Kitchen {

   Kitchen kitchen;


   public void cook(Food foodItem) {

      kitchen.cook(foodItem);

   }

}

他是一個快樂的人,因為他現(xiàn)在可以做類似的事情;


pizzaTruck.driveTo(beach);

pizzaTruck.cook(pizzaWithExtraAnchovies);

好的,這個愚蠢的故事是要說明它不是多重繼承的模擬,它是真正的多重繼承,但前提是您只能繼承協(xié)定,只能從稱為接口的空抽象基類繼承。



查看完整回答
反對 回復 2019-10-24
?
qq_遁去的一_1

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

您可能會感到困惑,因為您在本地查看多個繼承,就一個類而言,該類從多個父級繼承了實現(xiàn)細節(jié)。在Java中這是不可能的(并且在可能的情況下經(jīng)常導致語言濫用)。

接口允許類型的多重繼承,例如a class Waterfowl extends Bird implements Swimmer可以被其他類當作a Bird 如同a使用Swimmer。這是多重繼承的更深層含義:允許一個對象像它一次一樣屬于多個不相關(guān)的不同類。


查看完整回答
反對 回復 2019-10-24
?
月關(guān)寶盒

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

這是一種通過Java接口實現(xiàn)多重繼承的方法。


要實現(xiàn)什么?

類A擴展了B,C // //在Java中這不可能直接實現(xiàn),但是可以間接實現(xiàn)。


class B{

   public void getValueB(){}

}


class C{

   public void getValueC(){}

}



interface cInterface{

   public getValueC();

}


class cChild extends C implemets cInterface{

    public getValueC(){


      // implementation goes here, call the super class's getValueC();


    }

}



// Below code is **like** class A extends B, C 

class A extends B implements cInterface{

   cInterface child =  new cChild();

   child.getValueC();

}


查看完整回答
反對 回復 2019-10-24
  • 3 回答
  • 0 關(guān)注
  • 931 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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