使用內部類讓Java實現多繼承
眾所周知Java沒有像c++那樣支持多繼承但是我們可以使用接口或內部類來模擬實現多繼承
我們使用內部類來實現一個繼承自消費者又繼承自生產者的派生類
實際上Java之所以設計出內部類這個概念一方面是為了更好的封裝性另一方面就是借助內部類模擬實現多繼承
首先我們定義一個消費者抽象基類
view plainprint?
/** * Consumer Class *@author androidyue *Last Modified 上午 */ public abstract class Consumer { protected float buyPriceprotected abstract void buyGoods()}
以下是生產者抽象基類
view plainprint?
/** * Producer Class *@author androidyue *Last Modified 上午 */ public abstract class Producer { protected float costprotected abstract void produce()}
使用內部類實現多繼承的派生子類
view plainprint?
/** *Java實現多繼承
*@author androidyue *Last Modified 上午 */ public class InnerClassDemo extends Producer { private ConsumerBuyer buyer
public void desribeMySelf(){ Systemoutprintln(使用Java模擬多繼承)thisproduce()thisbuyer=new ConsumerBuyer()thisbuyerbuyGoods()
}
@Override protected void produce() { st=fSystemoutprintln(我是生產者我以每件+st+RMB的成本生產一件產品然後以元價格對外出售)}
class ConsumerBuyer extends Consumer{
@Override protected void buyGoods() { thisbuyPrice=fSystemoutprintln(我是消費者我以+thisbuyPrice+RMB 買了一件售價元的商品不信吧因為我也是生產者!^_^)
}
}
}
在程序入口調用
view plainprint?
/** * the entrance of application *@author androidyue *Last Modified 上午 */ public class AppMain { public static void main(String[] args){ InnerClassDemo demo=new InnerClassDemo()demodesribeMySelf()}
顯示結果使用Java模擬多繼承我是生產者我以每件RMB的成本生產一件產品然後以元價格對外出售我是消費者我以RMB 買了一件售價元的商品不信吧因為我也是生產者!^_^
From:http://tw.wingwit.com/Article/program/Java/hx/201311/25912.html