最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

一文講通Java為什么不支持多繼承原理

 更新時間:2023年03月27日 16:40:19   作者:Hoeller  
這篇文章主要為大家介紹了java為什么不支持多繼承原理詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪

正文

首先,思考這么一種場景,假如現(xiàn)在A類繼承了B類和C類,并且B類和C類中,都存在test()方法,那么當(dāng)A類對象調(diào)用test()方法時,該調(diào)用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方法,因為接口中只是聲明了方法,并沒有真正實現(xiàn)方法,所以對于C接口而言并不會照成困擾,對于C接口而言它只是繼承了同一個test()方法的聲明而已,在使用時需要C接口的實現(xiàn)類來實現(xiàn)這個test()方法就可以了。

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

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

我們直接來測試一下:

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()。

如果你問,那為什么C++中可以支持多繼承,那得解釋菱形繼承、虛繼承,本文就不分析了(因為我也不知道)。

以上就是一文講通Java為什么不支持多繼承原理的詳細(xì)內(nèi)容,更多關(guān)于Java不支持多繼承的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • 幾種常見的Java運行時異常小結(jié)

    幾種常見的Java運行時異常小結(jié)

    在Java編程語言中異常處理是一項關(guān)鍵的機制,它幫助開發(fā)者識別和修復(fù)程序運行時可能出現(xiàn)的問題,下面這篇文章主要給大家介紹了幾種常見的Java運行時異常的相關(guān)資料,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2024-08-08
  • java實現(xiàn)異步回調(diào)返回給前端的方法示例

    java實現(xiàn)異步回調(diào)返回給前端的方法示例

    在Java中實現(xiàn)異步回調(diào)并將結(jié)果返回給前端,通常是在Web應(yīng)用開發(fā)中處理耗時操作時所采用的技術(shù)手段,以避免阻塞HTTP請求線程并提高用戶體驗,本文就來介紹一下如何實現(xiàn),感興趣的可以了解一下
    2024-03-03
  • SpringBoot使用MyBatis-Flex實現(xiàn)靈活的數(shù)據(jù)庫訪問

    SpringBoot使用MyBatis-Flex實現(xiàn)靈活的數(shù)據(jù)庫訪問

    MyBatisFlex是一款優(yōu)秀的持久層框架,本文主要介紹了SpringBoot使用MyBatis-Flex實現(xiàn)靈活的數(shù)據(jù)庫訪問,具有一定的參考價值,感興趣的可以了解一下
    2024-06-06
  • 簡單介紹java中equals以及==的用法

    簡單介紹java中equals以及==的用法

    這篇文章主要介紹了簡單介紹java中equals以及==的用法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-07-07
  • Springboot詳解底層啟動過程

    Springboot詳解底層啟動過程

    這篇文章主要介紹了SpringBoot啟動過程的實現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-07-07
  • java實現(xiàn)可視化日歷

    java實現(xiàn)可視化日歷

    這篇文章主要為大家詳細(xì)介紹了java實現(xiàn)可視化日歷,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-09-09
  • javax.validation包里@NotNull等注解的使用方式

    javax.validation包里@NotNull等注解的使用方式

    這篇文章主要介紹了javax.validation包里@NotNull等注解的使用方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-01-01
  • Java中的并發(fā)工具類詳細(xì)解析

    Java中的并發(fā)工具類詳細(xì)解析

    這篇文章主要介紹了Java中的并發(fā)工具類詳細(xì)解析,CountDownLatch、 CyclicBarrier 和 Semaphore 工具類提供了一種并發(fā)流程控制的手段,Exchanger 工具類則提供了在線程間交換數(shù)據(jù)的一種手段,需要的朋友可以參考下
    2023-12-12
  • SpringMVC利用dropzone組件實現(xiàn)圖片上傳

    SpringMVC利用dropzone組件實現(xiàn)圖片上傳

    這篇文章主要介紹了SpringMVC利用dropzone組件實現(xiàn)圖片上傳,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-02-02
  • java快速排序和選擇排序?qū)崿F(xiàn)實例解析

    java快速排序和選擇排序?qū)崿F(xiàn)實例解析

    這篇文章主要為大家介紹了java快速排序和選擇排序?qū)崿F(xiàn)實例解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-11-11

最新評論

通江县| 黄山市| 蒲江县| 平谷区| 日土县| 聂拉木县| 朝阳县| 吉林省| 汕头市| 通江县| 莒南县| 临漳县| 图木舒克市| 老河口市| 林周县| 平邑县| 普兰县| 垦利县| 彰化县| 安陆市| 滦南县| 烟台市| 湘乡市| 确山县| 资源县| 石柱| 杭锦旗| 内乡县| 金门县| 余干县| 长丰县| 九龙县| 望城县| 金门县| 阿拉善盟| 敦化市| 呼图壁县| 双桥区| 山西省| 沈阳市| 资溪县|