这段代码中如何使用super关键字调用父class的构造函数?

How to use the super keyword in this code to call the constructor of the parent class?

我看过各种关于 super 关键字及其工作原理的网站和问题,但我无法得到我的答案

如何使用super关键字调用parent的构造函数class

我在 child class (Actor) 的构造函数的第一行中使用了 super。

{
  public String name, color;
  public int eyes, year;
  
  Person(String n, String c, int e, int y){
    name = n;
    color = c;
    eyes = e;
    year = y;
  }

}
class Actor extends Person
{
    String name, color;
    int eyes, year;
    
    Actor(String name,String color,int eyes,int year){
        super(String name, String color, int eyes, int year);
    }
    
    public String toString() {
        String str = String.format("The person %S is an Actor. He is %s in color, has %d eyes and debut in %d",name, color, eyes, year);
        return str;
    }

}

这给了我一定的错误:

/usercode/Main.java:20: error: ')' expected
        super(String name, String color, int eyes, int year);
                    ^
/usercode/Main.java:20: error: illegal start of expression
        super(String name, String color, int eyes, int year);
                         ^
/usercode/Main.java:20: error: ';' expected
        super(String name, String color, int eyes, int year);
                                 ^
/usercode/Main.java:20: error: not a statement
        super(String name, String color, int eyes, int year);

在您的情况下调用 super 的正确方法是 super(name, color, eyes, year)。 就像其他方法一样,在构造函数签名中(行:Actor(String name,String color,int eyes,int year){)你应该给出变量名和它们的类型,但是当调用一个方法时你只给出变量(没有类型)。 'super' 只是对另一个构造函数(父亲的构造函数)的调用。