使用内部类让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 买了一件售价元的商品不信吧因为我也是生产者!^_^