天天看點

Java:使用内部類實作類的多重繼承

Java:使用内部類實作類的多重繼承

Java不支援類的多重繼承,但可以使用内部類來繼承實作更多的類。

下面的例子,目标類需要繼承兩個抽象類(A和B)。目标類C本身繼承類A,并使用一個匿名内部類繼承另一個類B。

MultiImplementation.java

<b>abstract</b> <b>class</b> A {

    <b>abstract</b> <b>void</b> methodA();

}

<b>abstract</b> <b>class</b> B {

    <b>abstract</b> <b>void</b> methodB();

<b>class</b> C <b>extends</b> A {

    @Override

    <b>void</b> methodA() {

       System.out.println("extends A's method");

    }

    B getB() {

       <b>return</b> <b>new</b> B() {

           @Override

           <b>void</b> methodB() {

              System.out.println("extends B's method");

           }

       };

<b>public</b> <b>class</b> MultiImplementation {

    <b>public</b> <b>void</b> doA(A a) {

       a.methodA();

    <b>public</b> <b>void</b> doB(B b) {

       b.methodB();

    <b>public</b> <b>static</b> <b>void</b> main(String[] args) {

       MultiImplementation mi = <b>new</b> MultiImplementation();

       C c = <b>new</b> C();

       mi.doA(c);

       mi.doB(c.getB());

結果:

extends A's method

extends B's method

本文轉自zhangjunhd51CTO部落格,原文連結:http://blog.51cto.com/zhangjunhd/71393,如需轉載請自行聯系原作者