当前位置:首页 » 编程语言 » java内部类的继承

java内部类的继承

发布时间: 2024-06-09 22:35:18

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

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

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

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

view plainprint?姿侍

/** *Java实现 多继承

*@author androidyue *Last Modified 上午 */ public class InnerClassDemo extends Procer { private ConsumerBuyer buyer

public void desribeMySelf(){ System out println( 使用Java模拟多继承 ) this proce() this buyer=new ConsumerBuyer() this buyer buyGoods()

}

@Override protected void proce() { 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() }

lishixin/Article/program/Java/hx/201311/25912

⑵ JAVA内部类使用,什么时候该使用内部类及使

java中的内部类和接口加在一起,可以的解决常被C++程序员抱怨java中存在的一个问题 没有多继承。

每个内部类都能独立的继承自一个(接口的)实现,所以无论外围类是否已经继承了某个(接口的)实现,对于内部类都没有影响。

1.内部类继承

因为内部类的构造器必须连接到指向其外围类对象的引用,所以在继承内部类的时候使用特殊语法。问题在于,指向外围类对象的引用必须被初始化,而在导出类中不存在可连接的默认对象。所以必须要用特殊语法来明确说清楚他们之间的关联。

[java]view plain

  • classWithInner{

  • classInner{}

  • }

  • .Inner{

  • InheritInner(WithInnerwi){

  • wi.super();

  • }

  • }

  • 2 内部类覆盖

    当继承一个外围类的时候,内部类不会发生什么变化。当明确的继承一个内部类时会发生变化。

    [java]view plain

  • publicclassEgg{

  • privateYolky;

  • protectedclassYolk{

  • publicYolk(){

  • System.out.println("Egg.Yolk");

  • }

  • }

  • publicEgg(){

  • System.out.println("NewEgg");

  • y=newYolk();

  • }

  • }

  • [java]view plain

  • publicclassBigEggextendsEgg{

  • publicclassYolk{

  • publicYolk(){

  • System.out.println("BigEgg.yolk()");

  • }

  • }

  • publicstaticvoidmain(String[]args){

  • newBigEgg();

  • }

  • }

  • 输出:

    New Egg
    Egg.Yolk

⑶ java中static类可以被继承吗

java中 被static修饰的 class 都是 内部类雹斗消。
static class 是可以被继源知承的销盯

热点内容
阿里云esc服务器系统 发布:2025-01-18 09:49:16 浏览:789
你们家的无线网密码是多少 发布:2025-01-18 09:47:50 浏览:729
renderscriptandroid 发布:2025-01-18 09:32:18 浏览:992
安卓手机如何拍游戏素材 发布:2025-01-18 09:30:59 浏览:347
广州日立压缩机有限公司 发布:2025-01-18 09:15:08 浏览:623
服务器两条宽带如何叠加网速 发布:2025-01-18 08:52:17 浏览:730
oracle存储过程集合 发布:2025-01-18 08:42:39 浏览:884
洋葱数学缓存 发布:2025-01-18 08:38:36 浏览:918
电影的文件夹都是 发布:2025-01-18 08:21:49 浏览:835
post提交php 发布:2025-01-18 08:21:42 浏览:460