为什么我们不能在Java中将this()和super()结合在一起?
作者:互联网
参见英文答案 > Why can’t this() and super() both be used together in a constructor? 8个
我有这个程序:
public class A
{
public A(){
System.out.println("I am in A");
}
public static void main(String args[]){
B a = new B("Test");
}
}
class B extends A
{
public B(){
System.out.println("I am in B");
}
public B(String s){
this();
super();
System.out.println("I am in B as " + s);
}
}
现在为什么我不能调用B的这个构造函数来调用默认的构造函数?这给了我编译时错误.
解决方法:
this和super必须是构造函数中的第一行.
编辑:
语言规范
8.8.7. Constructor Body
构造函数体的第一个语句可能是显式的
调用同一个类或直接的另一个构造函数
超类(§8.8.7.1).
标签:java,constructor,default-constructor 来源: https://codeday.me/bug/20190530/1182960.html