gpt4 book ai didi

java - 如何静态访问子类的重写方法?

转载 作者:行者123 更新时间:2023-11-30 06:50:24 25 4
gpt4 key购买 nike

所以我已经知道抽象类中不可能有静态方法。但是,有没有一种方法可以在不实例化它的情况下访问其子类中的重写方法?

例如,假设我有两个类,一个抽象类元素及其子类 Hydrogen,如下所示。这假设我将有多个类似的类,例如 Helium、Boron 等,它们都是 Element 的子类。

public abstract class Element {
public abstract double getMolarMass();
}

public final Hydrogen extends Element {
@Override
public double getMolarMass() {
return 1.008;
}
}

我如何能够在不必实例化 Hydrogen 对象的情况下调用 getMolarMass 方法?

最佳答案

在我看来,您希望能够访问子类中的常量,同时允许涉及这些值的多态行为。您可以拥有一个常量,并从您的方法中返回它:

public final class Hydrogen extends Element {
public static final double MOLAR_MASS = 1.008;

@Override
public double getMolarMass() {
return MOLAR_MASS;
}
}

然后,您可以静态访问该常量:Hydrogen.MOLAR_MASS

关于java - 如何静态访问子类的重写方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42925539/

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