[英]Syntax error on token “super”, invalid Name
我正在嘗試寫本科課程以擴展學生
這是基類(學生)
public class Student{
private String name;
private int id;
private double gpa;
public Student(){
}
public Student(int id, String name, double gpa){
this.id = id;
this.name = name;
this.gpa = gpa;
}
public Student(int id, double gpa){
this(id, "", gpa);
}
public String getName(){
return name;
}
public int getId(){
return id;
}
public double getGPA(){
return gpa;
}
public void setName(String newName){
this.name = newName;
}
@Override
public String toString(){
return "Student:\nID: " + id + "\nName: " + name + "\nGPA: " + gpa;
}
}
這里是派生類(本科)
public class Undergrad extends Student {
private String year;
public Undergrad (int id , String name ,double gpa,String year)
{
super(id,name , gpa);
this.year =year;
}
@Override
public String toString(){
return super() + " the year is :" + year;
}
}
我面臨的問題是日食顯示我在類Undergrad的 toString方法中有一個錯誤,正是在super()處調用了錯誤說
“令牌“超級”的語法錯誤,名稱無效”
請問有什么需要嗎?
僅在構造函數中允許super()
調用。
如果要調用超類方法,則需要調用super.toString()
。
public String toString()
{
return super.toString() + " the year is :" + year;
}
這是super
關鍵字的語法
1.用於調用超類構造函數是
- 超(); //調用超類無參數構造函數
- super(參數列表); //具有匹配參數列表的超類構造函數被稱為
2.用於調用超類成員是
- super.fieldName; //這里成員是超類的字段
- super.methodName(); //這里成員是超類的方法
調用超類方法時,請使用語法super.methodName()
:
{return super.toString() + " the year is :" + year;}
這與從子類構造函數中調用超類構造函數不同; 該語法只需要關鍵字super
,不帶點且不帶方法名,因為您已經有了它。
super.toString()
調用超類方法。
super()
調用超類構造函數。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.