-2

普通のクラスであるAというクラスがあるとします。

ここで、AはクラスBをネストし、クラスBはCをネストします。

クラスBは抽象クラスですが、A、Cはそうではありません。

現在、Bは抽象クラスであるため、オブジェクトを作成することはできません。

しかし、クラスBのオブジェクトを作成しない限り、クラスCのオブジェクトを作成することはできません。

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

Bにはオブジェクトがないため、この場合、外部クラスオブジェクト「out」は使用できません。

では、Cのオブジェクトを作成するにはどうすればよいですか?

4

1 に答える 1

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();
}
于 2012-12-28T05:44:29.367 に答える