抽象类的内部类 由于抽象类是不能被实例化的,所以静态内部类可以通过new 外部类.内部类()来创建内部类的实例。而非静态的内部类则无法被实例化。
public abstract class Demo { public abstract void demo(); static class A { public void a(){ System.out.println("a"); } } class B { public void b(){ System.out.println("b"); } } } class F { public static void main(String[] args) { Demo.A a = new Demo.A(); a.a(); // Demo.B b = new Demo.B(); // Demo.B b = new Demo().new B(); } }内部抽象类 普通内部类需要先实例化外部类,然后在实例化内部类。抽象内部类也是通过此方法实现,只是需要在实例化的时候重写抽象方法。
class C { static abstract class D { public abstract void demoD(); } class E { public void e(){ System.out.println("e"); } } } class F { public static void main(String[] args) { C.D d = new C.D() { @Override public void demoD() { // TODO Auto-generated method stub } }; C.E e = new C().new E(); e.e(); } }