编程语言
首页 > 编程语言> > 为什么我们不能在Java中将this()和super()结合在一起?

为什么我们不能在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