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 回答