我已经阅读了有关类构造函数的文章,在这里,然后就会出现以下层次结构为什么是不正确的问题:
public class Test extends Subclass.Inner{ //compile-time error
//The hierarchy of the type Test is inconsistent
public Test() {
super();
}
}
public class Subclass extends Test{
public class Inner{
}
}
正式规定:
如果超类构造函数调用语句是未限定的,并且 S 是内部成员类,则在以下情况下会发生编译时错误:如果 S 不是 C 的词法封闭类的声明或继承的成员,则会发生编译时错误。
据我所知,这个例子完全符合我引用的规则。在这种情况下,SubClass
通过继承是 Test
的词法封闭类。为什么代码不能正常工作?您能提供一个恰当的例子来反映这一点吗?