内部类模拟实现多继承
来源:互联网 发布:大数据研发工程师笔试 编辑:程序博客网 时间:2024/06/04 19:36
使用内部类让Java实现“多继承”
众所周知,Java没有像c++那样支持多继承,但是我们可以使用接口或内部类来模拟实现多继承。
我们使用内部类来实现一个继承自消费者,又继承自生产者的派生类。
实际上Java之所以设计出内部类这个概念,一方面是为了更好的封装性,另一方面就是借助内部类模拟实现多继承。
首先我们定义一个消费者抽象基类
以下是生产者抽象基类
使用内部类实现“多继承”的派生子类
在程序入口调用
显示结果:
使用Java模拟多继承
我是生产者,我以每件100.0RMB的成本生产一件产品,然后以20000元价格对外出售
我是消费者,我以0.0RMB 买了一件售价20000元的商品,不信吧,因为我也是生产者!^_^
众所周知,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();
- }
- @Override
- protected void produce() {
- this.cost=100f;
- System.out.println("我是生产者,我以每件"+this.cost+"RMB的成本生产一件产品,然后以20000元价格对外出售");
- }
- class ConsumerBuyer extends Consumer{
- @Override
- protected 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元的商品,不信吧,因为我也是生产者!^_^
- 内部类模拟实现多继承
- Java内部类模拟实现多继承
- Java内部类模拟实现多继承
- Java内部类模拟实现多继承
- 内部类实现多继承~
- java内部类之成员内部类,通过内部类实现多继承
- 内部类实现多重继承
- 内部类实现多重继承
- java内部类回顾之一般内部类实现多继承和封装性
- 内部类(多继承)
- 使用内部类让Java实现“多继承”
- 内部类实现多继承和封装性
- 使用内部类来实现Java的”多继承“
- 用内部类来间接的实现多继承
- 用java内部类实现多重继承
- java利用内部类实现多重继承
- java 内部类实现多重继承
- 匿名内部类实现接口,继承类
- android ImageView.getDrawingCache return NULL
- android 面试
- web架构设计经验分享
- 对单元测试的思考
- Readability付费计划失败带给创业者的反思
- 内部类模拟实现多继承
- C#三层结构
- 如何把批处理文件放到启动项中
- Win32 多线程的创建方法和基本使用
- 转 『BAT文件』修改IP和电脑名的bat代码
- (转)DirectShow开发快速入门之慨述
- SQL Prompt 4 破解步骤
- 教你使用dos指令把秘密文字藏在图片里
- 做动态聊天表情显示时候遇到getCharBoundaries()为Null的解决之法