java為什么沒有多繼承

java為什么沒有多繼承?這個問題可能是我們?nèi)粘W習或工作經(jīng)常見到的。希望通過這個問題能讓你收獲頗深。下面是小編給大家?guī)淼膮⒖純?nèi)容,讓我們一起來看看吧!

創(chuàng)新互聯(lián)建站專注為客戶提供全方位的互聯(lián)網(wǎng)綜合服務,包含不限于成都網(wǎng)站設計、網(wǎng)站建設、百色網(wǎng)絡推廣、小程序定制開發(fā)、百色網(wǎng)絡營銷、百色企業(yè)策劃、百色品牌公關、搜索引擎seo、人物專訪、企業(yè)宣傳片、企業(yè)代運營等,從售前售中售后,我們都將竭誠為您服務,您的肯定,是我們最大的嘉獎;創(chuàng)新互聯(lián)建站為所有大學生創(chuàng)業(yè)者提供百色建站搭建服務,24小時服務熱線:028-86922220,官方網(wǎng)址:muchs.cn

 Java只支持單繼承,不允許多重繼承,單繼承就是一個類只能有一個父類,多繼承就是一個類可以有多個父類。

Java可以有多層繼承,即一個類可以繼承某一個類的子類,如:類B繼承了類A,類C又可以繼承類B,那么類C也間接繼承了類A

子類可以繼承父類所有的成員變量和方法,但子類永遠無法繼承父類的構造方法。在子類的構造方法中可使用語句super(參數(shù)列表)調(diào)用父類的構造方法。

類定義屬性和方法、描述某一類事物的抽象

按照邏輯上來說,單繼承更明確 一個子類就應該是其父類代表的事物中的某個更具體的類別,不應該即是這種東西又是那種東西
而從實用角度上來說,單繼承易讀、易維護、語義清晰、邏輯清楚

多繼承造成的問題。鉆石危機:

  A foo()
       / \
      /   \
  B foo()   C foo()
      \   /
       \ /
      D foo()

假設類A中有一個public方法fun(),然后類B和類C同時繼承了類A,類B或類C中各自對fun()進行了覆蓋,這時類D通過多繼承同時繼承了類B和類C,這樣便導致鉆石危機了,程序在運行的時候對應方法fun()該如何判斷?

class A{
    public void foo(){
    }
}
class B extends A{
    public void foo(){
    }
}
class C extends A{
    public void foo(){
    }
}
//Not allowed here.
public class D extends B, C{
    public void foo(){
    }
}

(1)如果在一個子類繼承的多個父類中擁有相同名字的實例變量,子類在引用該變量時將產(chǎn)生歧義,無法判斷應該使用哪個父類的變量。

(2)如果在一個子類繼承的多個父類中擁有相同方法,子類中有沒有覆蓋該方法,那么調(diào)用該方法時將產(chǎn)生歧義,無法判斷應該調(diào)用哪個父類的方法。

感謝各位的閱讀!看完上述內(nèi)容,你們對java為什么沒有多繼承大概了解了嗎?希望文章內(nèi)容對大家有所幫助。如果想了解更多相關文章內(nèi)容,歡迎關注創(chuàng)新互聯(lián)行業(yè)資訊頻道。

本文名稱:java為什么沒有多繼承
本文鏈接:http://muchs.cn/article8/jioiip.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供外貿(mào)建站、網(wǎng)站建設、面包屑導航、App設計、網(wǎng)站設計、云服務器

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉載內(nèi)容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)

營銷型網(wǎng)站建設