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
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