`
iloveoracle
  • 浏览: 119495 次
  • 性别: 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 
0
1
分享到:
评论
1 楼 Mybeautiful 2011-08-31  
这个只能说 里面组合了一个b,不是多继承。继承的关系是is-a; c 是a, 但不能说c是b,只能说c里面有一个b.

相关推荐

    java 内部类的实例详解

    这时,我们可以通过内部类实现多重继承: ```java public class Son { class Mother_ implements Mother {} } ``` 内部类还有其他优势: 1. **独立状态**:内部类可以有多个实例,每个实例都拥有独立的状态信息,...

    学习JAVA的30个目标

    3. **多重继承**:通过内部类可以实现多重继承的效果,即一个类可以同时继承一个父类并实现多个接口。 4. **方法重名**:在某些场景下,可以通过内部类来实现同一个类中有两个相同名称的方法,从而避免修改接口。 #...

    JAVA类与对象及数组习题

    JAVA不支持多重继承,但是可以通过接口和内部类实现多重继承的效果。 3. 变量声明: 在JAVA中,变量声明需要指定类型,例如`public final int MAX_LENGTH=100`。 4. 变量的作用域: JAVA中的变量可以是实例变量或...

    java学习笔记

    使用内部类实现多重继承 Java语言本身不支持多重继承,但是可以通过使用内部类的方式间接实现。例如,可以在一个类中定义多个扩展不同基类的内部类,然后在主类中调用这些内部类的方法。 示例代码如下所示: ```...

    java内部类总结(含概念和实例)

    接口解决了部分问题,而内部类有效地实现了“多重继承”。 成员内部类的特点: * 成员内部类不能定义静态成员 * 成员内部类可以访问外部类的所有成员 * 成员内部类可以访问外部类的私有成员 局部内部类的特点: ...

    C++内部类详细分析

    然而,可以通过特定的技术手段在C++中模拟内部类的行为,以此来简化多重继承的复杂度。 1. **内部类的基本概念**: - 内部类是指定义在一个外部类内部的类。它可以访问外部类的所有成员,包括私有成员。 - 内部类...

    接口--内部类--多继承

    多继承则是Java中通过接口实现的,因为Java不支持类的多重继承,但可以通过实现多个接口来达到类似的效果。 **接口(Interface)** 接口在Java中是一种完全抽象的类型,它仅包含常量和抽象方法。接口的定义使用`...

    Java 基础核心总结.md

    - **内部类实现多重继承**:Java不支持多重继承,但内部类可以实现这一目的。 - **内部类的继承**:内部类可以继承其他类。 - **内部类的覆盖**:内部类可以覆盖其超类的方法。 - **关于源码中内部类的表示**:在...

    vs2008 多重继承虚基类的简单应用

    在C++编程中,多重继承和虚基类是两种重要的特性,它们允许一个类可以从多个父类中继承属性和行为。Visual Studio 2008(VS2008)作为一个强大的开发环境,支持这些高级的面向对象特性,使得开发者能够创建复杂的...

    Java Core及底层面试问题.pdf

    - 可以通过内部类实现多重继承的效果,尽管Java不支持多重继承,但内部类可以实现类似功能。 - 内部类可以避免修改接口而实现同一个类中两种同名方法的调用。 4. **继承**: - 子类可以从父类继承public和...

    Java内部类的作用

    这样,`MainExample`类可以通过内部类的方式实现多重继承。 ##### 4. 避免修改接口以实现同一类中两种同名方法的调用 在某些场景下,我们需要在同一类中实现多个具有相同方法名但不同功能的方法。通过内部类,我们...

    Java里如何实现多继承[参考].pdf

    - 内部类提供了实现多重继承的一种方式,因为一个内部类可以继承另一个类,并同时访问外部类的成员。 - 内部类可以隐藏,增强封装性。 - 内部类可以用来解决方法同名的问题,因为在不同的内部类中可以定义同名...

    Java内部类总结,内部类的共同特征,内部类的分类等

    3. 可以实现多重继承。 4. 当想要定义一个回调函数且不想编写大量代码时,使用匿名内部类比较便捷。 四、内部类的优点 1. 每个内部类都能独立地继承自一个(接口的)实现,所以无论外围类是否已经继承了某个(接口...

    Java内部类总结[参考].pdf

    接口解决了部分问题,而内部类有效地实现了“多重继承”。 Java内部类的分类: A. 成员内部类:作为外部类的一个成员存在,与外部类的属性、方法并列。 * 成员内部类中的特点: + 不能定义静态成员 + 可以访问...

    java内部类应用详解

    - **实现多重继承**:由于Java不支持多重类继承,但内部类可以实现接口,所以可以通过内部类实现对多个接口的继承,达到类似多重继承的效果。 - **封装和隐藏**:内部类对外部类的私有成员具有访问权限,这使得内部...

    java内部类的作用[文].pdf

    在示例的`MainExample`类中,`test1`和`test2`内部类分别继承了`Example1`和`Example2`,这样`MainExample`类就可以通过内部类的实例来调用这些类的方法,达到多重继承的效果,同时避免了接口强制实现所有方法的约束...

    Class详解内部类等

    此外,内部类可以实现多重继承的效果,因为一个内部类可以实现多个接口,同时外部类可以继承一个类。这种组合方式使得Java在单继承的限制下仍能实现多态性。 总之,Java的内部类提供了一种灵活的方式来组织和设计...

    Java内部类总结

    内部类提供了多重继承的一种解决方案,因为每个内部类都可以独立地继承一个类或实现一个接口,而不影响外部类的继承结构。这样,即使外部类已经继承了某个类,内部类仍然可以继承其他类或实现其他接口,有效地解决了...

    有关JAVA的内部类的好东西

    - **实现多态**:内部类可以实现接口,从而创建多重继承的效果,尽管Java不支持类的多继承。 - **作为回调机制**:内部类常用于实现事件监听器等回调机制,因为它们可以轻松地访问外部类的成员。 3. **示例解析**...

    java 集合和内部类资料

    同时,内部类可以实现多重继承的效果,因为一个内部类可以实现多个接口,同时外部类可以继承一个类。 在`Java集合排序及java集合类详解.PDF`文档中,你可以找到关于集合排序和不同集合类的详细讲解。例如,如何使用...

Global site tag (gtag.js) - Google Analytics