`
jzj41232216
  • 浏览: 41227 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

内部类实现多重继承(转)

    博客分类:
  • java
阅读更多
Java:使用内部类实现类的多重继承
Java不支持类的多重继承,但可以使用内部类来继承实现更多的类。
下面的例子,目标类需要继承两个抽象类(A和B)。目标类C本身继承类A,并使用一个匿名内部类继承另一个类B。
MultiImplementation.javaabstract class A {
    abstract void methodA();
}

abstract class B {
    abstract void methodB();
}

class C extends A {
    @Override
    void methodA() {
       System.out.println("extends A's method");
    }

    B getB() {
       return new B() {
           @Override
           void methodB() {
              System.out.println("extends B's method");
           }
       };
    }
}

public class MultiImplementation {
    public void doA(A a) {
       a.methodA();
    }

    public void doB(B b) {
       b.methodB();
    }

    public static void main(String[] args) {
       MultiImplementation mi = new MultiImplementation();
       C c = new C();
       mi.doA(c);
       mi.doB(c.getB());
    }
}

结果:
extends A's method
extends B's method
分享到:
评论

相关推荐

    多重继承及虚继承中对象内存的分布

    尽管在理想的使用环境中,一个C++程序员并不需要了解这些编译器内部实现细节,实际上,编译器针对多重继承(特别是虚拟继承)的各种实现细节对于我们编写C++代码都或多或少产生一些影响(比如downcastingpointer、...

    C#接口抽象类区别实例

    (3) 接口可以被多重实现,抽象类只能被单一继承 (4) 抽象类更多的是定义在一系列紧密相关的类间,而接口大多数是关系疏松但都实现某一功能的类中 (5) 抽象类是从一系列相关对象中抽象出来的概念, 因此反映的是事物...

    JAVA基础知识精华总结 收藏

    (2) protected:继承类和同一软件包的类可访问。 (3) 如果构造方法为private,那么在其他类中不能创建该类的对象。 5、 抽象类 (1) 抽象类不能创建对象。 (2) 如果一个类中一个方法为抽象方法,则这个类必须为...

    C++编程思想习题

    第16章 多重继承 16.1概述 16.2子对象重叠 16.3向上映射的二义性 16.4虚基类 16.4.1“最晚辈派生”类和虚基初始化 16.4.2使用缺省构造函数向虚基“警告” 16.5开销 16.6向上映射 16.7避免MI 16.8修复接口 16.9小结 ...

    java面试题(面试 宝典)

    12. 内部类的实现方式? 12 13. 用JAVA实现一种排序,JAVA类实现序列化的方法(二种)? 13 14. 如在COLLECTION框架中,实现比较要实现什么样的接口? 13 15. 用插入法进行排序代码如下 13 16. 编程:编写一个截取字符...

    C++ Primer第四版【中文高清扫描版】.pdf

    17.3.3 多重继承派生类的复制控制 619 17.3.4 多重继承下的类作用域 620 17.3.5 虚继承 622 17.3.6 虚基类的声明 624 17.3.7 特殊的初始化语义 625 小结 628 术语 628 第18章 特殊工具与技术 631 18.1 优化内存分配...

    Java面试宝典

    一. Java基础部分 7 1、一个".java"源文件中是否可以包括多个类(不是内部类)?...28、Anonymous Inner Class (匿名内部类) 是否可以extends(继承)其它类,是否可以implements(实现)interface(接口)? 21

    java面试过程当中遇到的一些题目

    12. 内部类的实现方式? 12 13. 用JAVA实现一种排序,JAVA类实现序列化的方法(二种)? 13 14. 如在COLLECTION框架中,实现比较要实现什么样的接口? 13 15. 用插入法进行排序代码如下 13 16. 编程:编写一个截取字符...

    java基础案例与开发详解案例源码全

    8.1 内部类和内部接口202 8.1.1 非静态成员内部类203 8.1.2 局部内部类206 8.1.3 静态内部类209 8.1.4 匿名内部类211 8.2 对象包装器213 8.3 装箱和拆箱216 8.4 本章习题218 第9章 9.1 String类220 9.1.1 字符串常量...

    Java面试宝典2011版

    28、Anonymous Inner Class (匿名内部类) 是否可以extends(继承)其它类,是否可以implements(实现)interface(接口)? 21 29、super.getClass()方法调用 21 30、String是最基本的数据类型吗? 22 31、String s = "Hello...

    Java面试宝典2017.zip

    28、Anonymous Inner Class (匿名内部类) 是否可以extends(继承)其它类,是否可以implements(实现)interface(接口)? 21 29、super.getClass()方法调用 21 30、String是最基本的数据类型吗? 22 31、String s = ...

    谭浩强C语言程序设计,C++程序设计,严蔚敏数据结构,高一凡数据结构算法分析与实现.rar

    4.3 数据输入输出的概念及在 C 语言中的实现 54 4.4 字符数据的输入输出 54 4.4.1 putchar 函数(字符输出函数) 54 4.4.2 getchar函数(键盘输入函数) 55 4.5 格式输入与输出 55 4.5.1 printf 函数(格式输出函数...

    JAVA入门1.2.3:一个老鸟的JAVA学习心得 PART1(共3个)

    基本信息 作者: 臧萌 出版社:清华大学出版社 ISBN:9787302217831 ...12.2.5 接口——让类集多重类型于一身 344 12.2.6 简化recordTransport()方法 347 12.3 再探接口 349 12.3.1 重温上节中的程序 349...

    Java入门1·2·3:一个老鸟的Java学习心得.PART3(共3个)

    基本信息 作者: 臧萌 出版社:清华大学出版社 ISBN:9787302217831 ...12.2.5 接口——让类集多重类型于一身 344 12.2.6 简化recordTransport()方法 347 12.3 再探接口 349 12.3.1 重温上节中的程序 349...

    谭浩强C语言程序设计,C++程序设计,严蔚敏数据结构,高一凡数据结构算法分析与实现.rar )

    4.3 数据输入输出的概念及在 C 语言中的实现 54 4.4 字符数据的输入输出 54 4.4.1 putchar 函数(字符输出函数) 54 4.4.2 getchar函数(键盘输入函数) 55 4.5 格式输入与输出 55 4.5.1 printf 函数(格式输出函数...

    Thinking in java(中文)

    多形性 7.1 上溯造型 7.1.1 为什么要上溯造型 7.2 深入理解 ...多重继承” 7.5.2 通过继承扩展接口 7.5.3 常数分组 7.5.4 初始化接口中的字段 7.6 内部类 7.6.1 内部类和上溯造型 7.6.2 ...

Global site tag (gtag.js) - Google Analytics