當前位置:首頁 » 編程語言 » java內部類的繼承

java內部類的繼承

發布時間: 2024-06-09 22:35:18

⑴ 使用內部類讓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

⑵ JAVA內部類使用,什麼時候該使用內部類及使

java中的內部類和介面加在一起,可以的解決常被C++程序員抱怨java中存在的一個問題 沒有多繼承。

每個內部類都能獨立的繼承自一個(介面的)實現,所以無論外圍類是否已經繼承了某個(介面的)實現,對於內部類都沒有影響。

1.內部類繼承

因為內部類的構造器必須連接到指向其外圍類對象的引用,所以在繼承內部類的時候使用特殊語法。問題在於,指向外圍類對象的引用必須被初始化,而在導出類中不存在可連接的默認對象。所以必須要用特殊語法來明確說清楚他們之間的關聯。

[java]view plain

  • classWithInner{

  • classInner{}

  • }

  • .Inner{

  • InheritInner(WithInnerwi){

  • wi.super();

  • }

  • }

  • 2 內部類覆蓋

    當繼承一個外圍類的時候,內部類不會發生什麼變化。當明確的繼承一個內部類時會發生變化。

    [java]view plain

  • publicclassEgg{

  • privateYolky;

  • protectedclassYolk{

  • publicYolk(){

  • System.out.println("Egg.Yolk");

  • }

  • }

  • publicEgg(){

  • System.out.println("NewEgg");

  • y=newYolk();

  • }

  • }

  • [java]view plain

  • publicclassBigEggextendsEgg{

  • publicclassYolk{

  • publicYolk(){

  • System.out.println("BigEgg.yolk()");

  • }

  • }

  • publicstaticvoidmain(String[]args){

  • newBigEgg();

  • }

  • }

  • 輸出:

    New Egg
    Egg.Yolk

⑶ java中static類可以被繼承嗎

java中 被static修飾的 class 都是 內部類雹斗消。
static class 是可以被繼源知承的銷盯

熱點內容
會員管理系統php 發布:2024-11-27 02:15:41 瀏覽:234
企業php網站系統 發布:2024-11-27 02:14:14 瀏覽:253
佛滔算命源碼 發布:2024-11-27 02:11:01 瀏覽:764
重新搭建伺服器得多久 發布:2024-11-27 02:09:55 瀏覽:796
淘寶秒殺腳本2021 發布:2024-11-27 01:57:09 瀏覽:126
編程刷題網站 發布:2024-11-27 01:56:35 瀏覽:686
python變數存在 發布:2024-11-27 01:56:30 瀏覽:856
手機怎樣更新uc瀏覽器緩存 發布:2024-11-27 01:17:32 瀏覽:75
基因密碼編譯生物 發布:2024-11-27 01:16:23 瀏覽:245
演算法spj 發布:2024-11-27 01:12:02 瀏覽:291