是否可以使子类方法/变量通过父超级类运行? Java

问题描述

我正在做一个作业,该作业需要在Super类中包含许多私有变量和 String 等级,以防止其他子类中的代码重复。另外,我正在使用 Double 来计算标记,是否可以将其引入?

//Parent Class
public String Grading(double TotalG) {
    if (TotalG >= 80 ) {
        Grade = "HD";
    }
    if (TotalG >= 70 && TotalG < 80) {
        Grade = "D";
    }
    if (TotalG >= 60 && TotalG < 70) {
        Grade = "C";
    }
    if(TotalG >= 50 && TotalG < 60) {
        Grade = "P";
    }
    if(TotalG < 49) {
        Grade = "N";
    }
    return Grade;
}

接受输入并进行计算,贯穿子类。

//Child Class
public double ResearchMarks() {
    ROverall = 70; //Changed this to 70 for the run..
    return ROverall;
}
public String RGrading() {
    double TotalG = ResearchMarks();
    super.Grading();
    return Grade;
}

我正在尝试运行该程序,但该程序仅显示null ..甚至在ROverall处显示70。.

public class Tester{
    public static void main(String[] args){
    Student test = new Student();
    ResearchStudent test2 = new ResearchStudent();
    test2.ResearchMarks();
    test2.RGrading();
    System.out.println(test2.RGrading());
    }
}

解决方法

public String RGrading() {
  double TotalG = ResearchMarks();
  // Grade is already being returned by the method
  String finalGrade = super.Grading();
  return finalGrade;
  // or just return super.Grading();
}