回覆列表
  • 1 # 年輕人的日常

    class="answer-text mb-10 "> (1)透過實現多個介面。 (2)透過內部類實現多重繼承。 public class Father { public int strong(){ return 9; }}public class Mother { public int kind(){ return 8; }}public class Son { /** * 內部類繼承Father類 */ class Father_1 extends Father{ public int strong(){ return super.strong() + 1; } } class Mother_1 extends Mother{ public int kind(){ return super.kind() - 2; } } public int getStrong(){ return new Father_1().strong(); } public int getKind(){ return new Mother_1().kind(); }}

  • 2 # 中國VS製造

    1.java中只能利用介面達到多實現而已,跟多繼承相仿

    2,java中唯一可以實現多繼承的 就是介面與介面之間了。

    先說繼承 比如

    class fu1

    {

    void show(){}

    }

    class fu2

    {

    void show(){}

    }

    class zi extends fu1,fu2

    {

    void show(){}

    }

    這時候 建立zi引用 呼叫show方法 java 虛擬機器 就不知道該呼叫父類的哪個show方法了

    同理 在介面中

    class fu1

    {

    void show();

    }

    class fu2

    {

    void show();

    }

    class zi extends fu1,fu2

    {

    void show(){}

    }

    介面的fu1 和 f2 的show方法都是abstract的 抽象的 是沒有方法體的

    所以只有子類的show方法是有方法體的 所以介面 可以多實現 也就是變數的多繼承

    所以也可以推出 介面與介面之間也是可以多繼承的 就算介面a 的父類介面 b和c都有同一個方法show()

    但是他們都是抽象方法 a繼承他們 也是抽象的 這個不就可以繼承了嗎? 由實現的例子就可以推出來 ,介面確實是可以多繼承的。

  • 3 # 無名小鬥

    在java中,原則上是不允許多繼承的,也就是類與類之間只可以單繼承。

    那麼,有沒有辦法,可以在不使用介面的情況下實現多繼承呢? 答案是可以。

    使用內部類就可以多繼承,嚴格來說,還不是實現多繼承,但是這種方法可以實現多繼承所需的功能,所以把它稱為實現了多繼承。

    下面就舉個例子:

    假如有一個打電話類Call,裡面實現了一個可以打電話的功能的方法callSomebody(String phoneNum);

    一個發信息類SendMessage,裡面實現了一個可以發信息功能的方法sendToSomebody(String phoneNum);

    還有一個手機類Phone,這個手機類想實現打電話和發信息的功能;我們知道可以用繼承來獲得父類的方法,但是隻可以單繼承呀,也就是說只可以實現其中一個類裡面的方法,這並不滿足我們的需求。

    接下來,我們就使用內部類,達到我們所需的目標了。

    class Call {

    public void callSomebody(String phoneNum){

    System.out.println("我在打電話喔,呼叫的號碼是:" + phoneNum);

    }

    }

    class SendMessage {

    public void sendToSomebody(String phoneNum){

    System.out.println("我在發簡訊喔,傳送給 :" + phoneNum);

    }

    }

    public class Phone {

    private class MyCall extends Call{

    }

    private class MySendMessage extends SendMessage{

    }

    private MyCall call = new MyCall();

    private MySendMessage send = new MySendMessage();

    public void phoneCall(String phoneNum){

    call.callSomebody(phoneNum);

    }

    public void phoneSend(String phoneNum){

    send.sendToSomebody(phoneNum);

    }

    public static void main(String[] args) {

    Phone phone = new Phone();

    phone.phoneCall("110");

    phone.phoneSend("119");

    }

    }

    這樣就實現了callSomebody(String phoneNum) 和sendToSomebody(String phoneNum)這兩個方法的功能呢。

  • 中秋節和大豐收的關聯?
  • 小白菜燴豆腐魚鱗的做法?