【问题标题】:Is it possible to make child class method/variable to run through a parent(Super) Class? (Java)是否可以使子类方法/变量通过父(超级)类运行? (爪哇)
【发布时间】:2020-11-09 09:11:29
【问题描述】:

我正在做一个需要许多私有变量和 String Grade 在 Super 类中的作业,以防止其他子类中的代码重复。还有,我是用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());
    }
}

【问题讨论】:

  • 无关,但很重要:您应该遵循 Java 命名约定:变量和方法名称应该用驼峰命名。
  • 只需在Grading 方法中添加一个参数并在那里传递值。
  • 感谢大家的提示和帮助。

标签: java inheritance superclass


【解决方案1】:
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();
}

【讨论】:

  • 这帮助了我和方法的功能。谢谢。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-05-21
  • 1970-01-01
  • 1970-01-01
  • 2019-09-20
  • 2020-08-08
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多