内部静态类和内部接口

2019-06-28  本文已影响0人  overflow_e4e4

内部静态类和内部接口

内部类有分静态和非静态的

package innerclass;

public class Outer {

    class Inner {


    }

    static class StaticInner {

    }

    interface InnerInterface {

    }
}

对于class,前面加一个static保证访问域是class级别的而不是对象级别的。
但是why 内部interface没有这样的区分?

因为接口是不能实例化的,内部接口只有当它是静态的才有意义。因此,默认情况下,内部接口是静态的,不管你是否手动加了static关键字。

这句话这么理解比较好,比如如下代码:

class EntryImpl implements Map.Entry{
...
}

我想实现Map的内部接口Entry,我是通过Map这个class静态获取Map.Entry,这是一种静态的获取方式,所以内部接口只能是静态的。

上一篇下一篇

猜你喜欢

热点阅读