这段代码中如何使用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' 只是对另一个构造函数(父亲的构造函数)的调用。
我看过各种关于 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' 只是对另一个构造函数(父亲的构造函数)的调用。