【Thinking in Java笔记】为什么需要内部类

时间:2022-02-01 19:37:02

内部类最吸引人的原因是:无论外部类是否已经继承了某个接口的实现,每个内部类都能独立地继承自一个接口的实现

内部类允许继承多个非接口类型,即类或抽象类。

即,如果拥有的是抽象的类或具体的类,而不是接口,那就只能使用内部类才能实现多重继承

class D {}
abstract class E {}
class Z extends D {
E makeE() {
return new E() {};
}
}

public class MultiImplementation {
static void takesD(D d) {}
static void takesE(E e) {}
public static void main(String args[]) {
Z z = new Z();
takesD(z);
takesE(z.makeE());
}
}