91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Java不支持多繼承的原因是什么

發布時間:2023-05-06 11:32:14 來源:億速云 閱讀:121 作者:iii 欄目:開發技術

這篇文章主要介紹“Java不支持多繼承的原因是什么”,在日常操作中,相信很多人在Java不支持多繼承的原因是什么問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”Java不支持多繼承的原因是什么”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!

首先,思考這么一種場景,假如現在A類繼承了B類和C類,并且B類和C類中,都存在test()方法,那么當A類對象調用test()方法時,該調用B類的test()呢?還是C類的test()呢?是沒有答案的,所以Java中不允許多繼承。

但是,Java中接口是可以多繼承的,比如:

public interface A {
    void test();
}
public interface B {
    void test();
}
public interface C extends A, B{
}

為什么接口可以?

因為都是A、B、C都是接口,就算A、B兩個接口中都定義了test方法,因為接口中只是聲明了方法,并沒有真正實現方法,所以對于C接口而言并不會照成困擾,對于C接口而言它只是繼承了同一個test()方法的聲明而已,在使用時需要C接口的實現類來實現這個test()方法就可以了。

public class C1 implements C{
    public void test() {
        System.out.println("hello Hoeller");
    }
}

那么接口中不是有default方法嗎?那不是也可以在接口中來實現方法嗎?

我們直接來測試一下:

public interface A {
    default void test() {
        System.out.println("a");
    }
}
public interface B {
    default void test() {
        System.out.println("b");
    }
}
public interface C extends A, B{
}

此時C接口會編譯報錯,報錯信息為:

com.hoeller.C inherits unrelated defaults for test() from types com.hoeller.A and com.hoeller.B

翻不翻譯都無所謂了,反正就是報錯了,表示C接口不能同時繼承兩個接口中default方法test()。

到此,關于“Java不支持多繼承的原因是什么”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

共和县| 新昌县| 贡山| 云林县| 佛教| 昭觉县| 始兴县| 鸡东县| 霍林郭勒市| 从化市| 乐亭县| 商城县| 安达市| 西畴县| 原阳县| 曲阳县| 灵璧县| 天柱县| 磐安县| 龙川县| 桂东县| 南澳县| 渝中区| 积石山| 宜宾市| 剑川县| 仁化县| 永修县| 尤溪县| 容城县| 息烽县| 兴文县| 泰顺县| 大连市| 沙雅县| 双流县| 肥西县| 乌恰县| 长汀县| 温泉县| 崇明县|