内部静态类和内部接口
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
,这是一种静态的获取方式,所以内部接口只能是静态的。