1.static:内部接口必须static,默认就是static。我觉得可以这样理解static的意义,当它描述外部的“东西”(类,接口)时它表示是否可以被实例化(因为接口不可被实例化,所以外部接口不可被修饰为static);而当他描述内部的东西时(字段,方法,类,接口)他就表示被描述的东西属于外部东西(类或接口)的还是它的实例的,如果内部的东西被修饰为non-static那么<em>逻辑上</em>可以认为是一个外部实例拥有一个内部“实例”,为什么说逻辑上,因为实现上内部的方法只有一个,并不是一个外部实例对应一个方法,或者也可以理解成static只有外部东西本身能call它(外部实例call它也是转换成外部东西本身call它),而non-static只能外部实例call它
注:前面提到的non-static不是一个修饰符,只是用来描述非static的
还有,因为static的内部东西是属于外部东西的,所以他也只能调用或访问外部东西的其他static的内部东西;而non-static的内部东西是跟外部实例一一对应的所以可以调用或访问外部东西的non-static的内部东西,当然也可以访问外部东西的static的内部东西
3.private,protected:外部接口不能用private,protected很明显(外部类也不能用),因为private,protected是用来修饰访问级别的,private表示只能被本类或本接口访问后调用是用来修饰内部的东西的,protected表示只能被子类或本包访问,也是用来修饰内部的东西的
4.和外部接口一样不能是final,因为abstract和final不能共存
5.public明显可以
注:前面提到的non-static不是一个修饰符,只是用来描述非static的