接口中的内部类与类中的内部类
这两个内类声明之间有什么区别?还评论优点/缺点?
情况 A:类中的类。
public class Levels {
static public class Items {
public String value;
public String path;
public String getValue() {
return value;}
}
}
和案例 B:接口内的类。
public interface Levels{
public class Items {
public String value;
public String path;
public String getValue() {
return value;}
}
}
进行了更正:对 getvalue 方法的放置。
更多信息:我能够在另一个完全不实现接口的类中实例化 Items 类,在 A 和 B 两种情况下。
public class Z{//NOTE: NO INTERFACE IMPLEMENTED here!!!!
Levels.Items items = new Levels.Items();
}
由于接口未实例化,因此接口内的所有元素都可以通过点表示法访问,而无需实例化 LEVELS 接口,因为您无法实例化接口 - 有效地使接口内定义的类能够渗透到静态引用中。
因此,在 B 不是静态的情况下说 Items 类是没有意义的。由于 A 和 B 这两种情况都以相同的方式实例化,因此我不是在寻找静态、内部或嵌套的语义。不要再给我关于语义的答案了。我想要编译器,运行时和行为差异/优势,或者如果没有,那就这么说。请不要再回答语义问题了!!!!!JVM或.NET VM规范内部的专家请回答这个问题,而不是教科书语义学家。