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

來源:互聯網
上載者:User

使用內部類讓Java實現“多繼承”
眾所周知,Java沒有像c++那樣支援多繼承,但是我們可以使用介面或內部類來類比實現多繼承。
我們使用內部類來實現一個繼承自消費者,又繼承自生產者的衍生類別。
實際上Java之所以設計出內部類這個概念,一方面是為了更好的封裝性,另一方面就是藉助內部類類比實現多繼承。
首先我們定義一個消費者抽象基類

/** * Consumer Class *@author androidyue *Last Modified:2011-12-13    上午11:04:56 */public abstract  class Consumer {protected float buyPrice;protected abstract void  buyGoods();}

以下是生產者抽象基類

/** * Producer Class *@author androidyue *Last Modified:2011-12-13    上午11:04:02 */public abstract class Producer {protected  float cost;protected abstract void produce();}

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

/** *Java實現“多繼承” *@author androidyue *Last Modified:2011-12-13    上午11:00:25 */public class InnerClassDemo extends Producer {private ConsumerBuyer buyer;public void desribeMySelf(){System.out.println("使用Java類比多繼承");this.produce();this.buyer=new ConsumerBuyer();this.buyer.buyGoods();}@Overrideprotected void produce() {this.cost=100f;System.out.println("我是生產者,我以每件"+this.cost+"RMB的成本生產一件產品,然後以20000元價格對外出售");}class ConsumerBuyer extends Consumer{@Overrideprotected void buyGoods() {this.buyPrice=0f;System.out.println("我是消費者,我以"+this.buyPrice+"RMB 買了一件售價20000元的商品,不信吧,因為我也是生產者!^_^");}}}

  
在程式入口調用
  

/** *  the entrance of application *@author androidyue *Last Modified:2011-12-13    上午11:20:06 */public class AppMain {public static void main(String[] args){InnerClassDemo demo=new InnerClassDemo();demo.desribeMySelf();}}

顯示結果:
使用Java類比多繼承
我是生產者,我以每件100.0RMB的成本生產一件產品,然後以20000元價格對外出售
我是消費者,我以0.0RMB 買了一件售價20000元的商品,不信吧,因為我也是生產者!^_^

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.