gpt4 book ai didi

java - 如何从父类(super class)调用抽象方法(在子类中重写)?

转载 作者:行者123 更新时间:2023-12-01 22:54:03 30 4
gpt4 key购买 nike

我在抽象类中有一个抽象方法,Student。子类 JUPASStudent 覆盖它。现在我正在尝试对 Student 类型的 ArrayList 进行排序。它需要调用该抽象方法,但我无法这样做。

我在这里写下我的部分代码。

父类(super class):

abstract class Student {
protected String name;

public Student (String name) {
this.name = name;
}

public String getName() {
return name;
}
abstract double getResult(); //abstract method

}

子类:

public class JUPASStudent extends Student {
private double dseResult;

public JUPASStudent(String n, double d) {
super (n);
this.dseResult = d;
}

public double getResult() {
return dseResult; //abstract method is overridden here
}
public String getName() {
return super.name;
}
public void setResult(double dseResult) {
this.dseResult = dseResult;
}
public void setName(String name) {
super.name = name;
}
}

现在我正在编写一个Sort函数来创建一个ArrayList(学生类)

public ArrayList <Student> sort(ArrayList<Student> sList){
sList.sort(Comparator.comparingInt(Student::getResult));
return sList;
}

输入:

A 9
B 5
C 8

预期输出:

B 5
C 8
A 9

错误

-The method comparingInt(ToIntFunction<? super T>) in the type Comparator is not applicable for the arguments (Student::getResult) 

-The type Student does not define getResult(T) that is applicable here

最佳答案

如果您重写了子类中的方法,它将使用子类的实现,因此不必担心显式调用它,至少在您的情况下是如此

关于java - 如何从父类(super class)调用抽象方法(在子类中重写)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58447866/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com