當前位置:首頁 » 編程語言 » java多繼承

java多繼承

發布時間: 2023-07-06 15:21:49

java語言可以通過什麼實現多繼承

(1)通過實現多個介面。

(2)通過內部類實現多重繼承。

publicclassFather{
publicintstrong(){
return9;
}
}

publicclassMother{
publicintkind(){
return8;
}
}

publicclassSon{

/**
*內部類繼承Father類
*/
classFather_1extendsFather{
publicintstrong(){
returnsuper.strong()+1;
}
}

classMother_1extendsMother{
publicintkind(){
returnsuper.kind()-2;
}
}

publicintgetStrong(){
returnnewFather_1().strong();
}

publicintgetKind(){
returnnewMother_1().kind();
}
}

Ⅱ java中的介面為什麼可以多繼承,其他類不能呢

java 在編譯的時候就會檢查 類是不是多繼承,如果出現多繼承編譯不通過。但是在java語法中介面是可以多繼承的。

Ⅲ java類是否可以多繼承,怎麼實現多繼承

類不能多繼承,但是介面可以繼承多個介面,所以通過介面來實現多繼承的功能。

Ⅳ java中定義一個類可以同時繼承兩個類

java中一個類不能直接繼承兩個類。

比如說這樣:class A extends B,C

不能這樣寫,因為java不支持多繼承,但是可以像下面這樣實現繼承多個類:

class A extends B

class C extends A

這樣C就同時繼承了B和A兩個類。



(4)java多繼承擴展閱讀

當子類繼承了某個類之後,便可以使用父類中的成員變數,但是並不是完全繼承父類的所有成員變數。具體的原則如下:

1)能夠繼承父類的public和protected成員變數;不能夠繼承父類的private成員變數;

2)對於父類的包訪問許可權成員變數,如果子類和父類在同一個包下,則子類能夠繼承;否則,子類不能夠繼承;

3)對於子類可以繼承的父類成員變數,如果在子類中出現了同名稱的成員變數,則會發生隱藏現象,即子類的成員變數會屏蔽掉父類的同名成員變數。如果要在子類中訪問父類中同名成員變數,需要使用super關鍵字來進行引用。

Ⅳ 使用內部類讓Java實現「多繼承」

使用內部類讓Java實現 多繼承

眾所周知 Java沒有像c++那樣支持多繼承 但是我們可以使用介面或內部類來模擬實現多繼承

我們使用內部類來實現一個繼承自消費者笑禪 又繼承自生產者的派生類

實際上Java之所以設計出內部類這個概念 一方面是為了更好的封裝性 另一方面就是藉助內部類模擬實現多繼承

首先我們定義一個消費者抽象基類

view plainprint?

/** * Consumer Class *@author androidyue *Last Modified 上午 */ public abstract class Consumer { protected float buyPrice protected abstract void buyGoods() }

跡升吵以下是生產者抽象基類

view plainprint?

/** * Procer Class *@author androidyue *Last Modified 上午 */ public abstract class Procer { protected float cost protected abstract void proce() }

使用內部類實現 多繼承 的派生子類

view plainprint?姿侍

/** *Java實現 多繼承

*@author androidyue *Last Modified 上午 */ public class InnerClassDemo extends Procer { private ConsumerBuyer buyer

public void desribeMySelf(){ System out println( 使用Java模擬多繼承 ) this proce() this buyer=new ConsumerBuyer() this buyer buyGoods()

}

@Override protected void proce() { st= f System out println( 我是生產者 我以每件 +st+ RMB的成本生產一件產品 然後以 元價格對外出售 ) }

class ConsumerBuyer extends Consumer{

@Override protected void buyGoods() { this buyPrice= f System out println( 我是消費者 我以 +this buyPrice+ RMB 買了一件售價 元的商品 不信吧 因為我也是生產者!^_^ )

}

}

}

在程序入口調用

view plainprint?

/** * the entrance of application *@author androidyue *Last Modified 上午 */ public class AppMain { public static void main(String[] args){ InnerClassDemo demo=new InnerClassDemo() demo desribeMySelf() }

lishixin/Article/program/Java/hx/201311/25912

熱點內容
Ftp打開文件是只讀模式 發布:2025-02-09 07:40:55 瀏覽:504
androidlistview點擊事件 發布:2025-02-09 07:25:52 瀏覽:171
targz解壓縮 發布:2025-02-09 06:59:19 瀏覽:311
wpsphp 發布:2025-02-09 06:58:41 瀏覽:961
視易鋒雲系統如何架設輔助伺服器 發布:2025-02-09 06:47:08 瀏覽:770
mysql備份腳本shell 發布:2025-02-09 06:46:33 瀏覽:15
騰訊雲伺服器怎樣調整解析度 發布:2025-02-09 06:46:30 瀏覽:369
php上一個頁面 發布:2025-02-09 06:41:25 瀏覽:489
改裝配置後不想重啟怎麼辦 發布:2025-02-09 06:36:40 瀏覽:446
演算法復雜度定義 發布:2025-02-09 06:30:46 瀏覽:587