0

インターフェイスを開発しようとしていましたが、そのインターフェイスには静的クラスが含まれます

class C1 {

    static interface I // A static interface or class can contain static members.Static members can be
    //accessed without instantiating the particular class
    {

        static class C2 {
        }
    }

    public static void main(String a[]) {
        C1.I.C2 ob1 = new C1.I.C2();
        System.out.println("object created");
    }
}

しかし、私の質問は、静的ではないクラスをインターフェイスに含めることができるということです。はいの場合、それらのオブジェクトがどのように作成されるか、アドバイスしてください。ありがとう

4

1 に答える 1

3

インターフェイスにクラスを含めることはできますか?

はい。たとえば、

interface Widget {
  static class Factory {
    static Widget create() { return new Widget() {}; }
  }
}

内部クラスには次のようにアクセスできます

Widget w = Widget.Factory.create();

したがって、内部クラスを参照するには、インターフェイス名、ドット、内部クラス名の順に使用できます

import my.pkg.MyInterface;

...

  MyInterface.InnerClass ic = new MyInterface.InnerClass();
于 2012-04-30T16:43:37.267 に答える