使用内部类让Java实现“多继承”

 我来答
舒适还明净的海鸥i
2022-10-03 · TA获得超过1.7万个赞
知道小有建树答主
回答量:380
采纳率:0%
帮助的人:68.2万
展开全部

  使用内部类让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?

  /** * Producer Class *@author androidyue *Last Modified     上午 */ public abstract class Producer { protected  float cost protected abstract void produce() }

  使用内部类实现 多继承 的派生子类

  view plainprint?

  /** *Java实现 多继承

  *@author androidyue *Last Modified     上午 */ 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() { 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() }

lishixinzhi/Article/program/Java/hx/201311/25912

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式