在Java中通过super访问方法和变量
我试图实现下面的代码,但我在HistoryStudent extends学生sGrade类中遇到一个错误。如何通过super添加学生成绩? 这是一个赋值,我们不应该更改抽象类中的任何内容或下面代码的任何部分在Java中通过super访问方法和变量,java,Java,我试图实现下面的代码,但我在HistoryStudent extends学生sGrade类中遇到一个错误。如何通过super添加学生成绩? 这是一个赋值,我们不应该更改抽象类中的任何内容或下面代码的任何部分 abstract class Student { private String studentID = "" ; private int studentGrade = 0 ; public Student (String sID, int sGr
abstract class Student
{
private String studentID = "" ;
private int studentGrade = 0 ;
public Student (String sID, int sGrade)
{
studentID = sID ;
studentGrade = sGrade ;
return ;
}
public String getStudentID () { return studentID ;}
public double getStudentGrade () { return studentGrade ;}
boolean updateGrade (int grade)
{
boolean check = false ;
studentGrade += grade;
return check ;
}
}
class HistoryStudent extends Student
{
public HistoryStudent (String sID, int sGrade)
{
super(sID,sGrade) ;
return ;
}
boolean updateGrade (int grade)
{
boolean checking = false ;
//Problem here
**sGrade** += grade;
return checking ;
}
}
非常感谢您的帮助。请检查超级类中的
updateGrade(int-grade)
,该类正是您想要做的
//Problem here
**sGrade** += grade; //Line mention in code
sGrade
是HistoryStudent
构造函数中的局部变量declare,因此无法在updateGrade
方法中访问它
class HistoryStudent extends Student
{
int sGrade;
public HistoryStudent (String sID, int sGrade)
{
super(sID,sGrade) ;
this.sGrade = sGrade;
}
boolean updateGrade (int grade)
{
boolean checking = false ;
sGrade += grade; // Dnt know usage bcoz everytime method will return false
return checking ;
}
}
您可以将sGrade
声明为全局变量,并在方法中调用超级构造函数时设置全局变量值,并在updateGrade
方法中访问它
class HistoryStudent extends Student
{
int sGrade;
public HistoryStudent (String sID, int sGrade)
{
super(sID,sGrade) ;
this.sGrade = sGrade;
}
boolean updateGrade (int grade)
{
boolean checking = false ;
sGrade += grade; // Dnt know usage bcoz everytime method will return false
return checking ;
}
}
更改HistoryStudent类中的更新方法
boolean updateGrade(int grade)
{
boolean checking = false ;
super.updateGrade(grade);
return checking ;
}
你在类中面临的问题基本上这将调用父类updateGrade(int grade)方法,该方法只能更改其私有属性,如studentID和studentGrade。