我在这段代码片段中遇到了一个错误。
错误是:无法在超类构造函数被调用之前引用x(并指出注释1处的语句)
在主方法中,我有以下语句:
错误是:无法在超类构造函数被调用之前引用x(并指出注释1处的语句)
class Con{
int x =10;
Con(){
this(++x); //1
System.out.println("x :"+x);
}
Con(int i){
x=i++;
System.out.println("x :"+x);
}
}
在主方法中,我有以下语句:
Con c1=new Con();
我不理解这个错误。有人能解释一下这里实际发生了什么吗?
this
调用,因此super
调用被抑制,因此出现了该消息。我想不到任何方法可以实现您想要的功能,除非稍微重构一下。 - Hot Lickssuper()
?如果是这样,那么不会导致多个super()
调用吗? - boxed__l