在java中访问抽象嵌套类

时间:2012-12-28 05:25:59

标签: java class nested abstract

假设我有一个班级说A是普通班级。

现在A筑巢一个B级,而B级又嵌套C.

B类是抽象类,而A,C则不是。

现在,无法为B创建任何对象,因为它是一个抽象类。

但是除非我为B类创建一个对象,否则我将无法为C类创建一个对象。 从那以后,

outerclass out=new outerclass();
outerclass.innerlcass in=outerclass.new innerclass();

由于B没有对象,因此在这种情况下,外部对象“out”不可用。

那么如何为C创建一个对象?

1 个答案:

答案 0 :(得分:1)

一种方式:

public class A {
    abstract class B {
        abstract String get();
        class C {
            void run() {
                System.out.println(get());
            }
        }
    }

    public static void main(String[] args) {
        new A().new B(){ String get() { return "hi"; } }.new C().run();
    }
}

或者,也可以使用与上述相同的A,B和C:

class ConcreteB extends B {
    String get() {
        return "I'm not anonymous!";
    }
}

public static void main(String[] args) {
    new A().new ConcreteB().new C().run();
}