gpt4 book ai didi

java - 在 Java 中重写常量

转载 作者:IT老高 更新时间:2023-10-28 20:52:27 24 4
gpt4 key购买 nike

我有两个扩展同一个抽象类的类。它们都需要相同的常数,但具有不同的值。我怎样才能做到这一点?一些示例代码来显示我想要做什么。

abstract class A {
public static int CONST;
}

public class B extends A {
public static int CONST = 1;
}

public class C extends A {
public static int CONST = 2;
}

public static void main(String[] args){
A a = new B();
System.out.println(a.CONST); // should print 1
}

上面的代码无法编译,因为 CONST 没有初始化 int 类 A。我怎样才能让它工作?对于 B 的所有实例,CONST 的值应该是 1,对于 C 的所有实例,应该是 2,对于 A 的所有实例,应该是 1 或 2。有没有办法为此使用静态?

最佳答案

你不能这样做。

不过,您可以这样做:

abstract class A {
public abstract int getConst();
}

public class B extends A {
@Override
public int getConst() { return 1; }
}

public class C extends A {
@Override
public int getConst() { return 2; }
}

public static void main(String[] args){
A a = new B();
System.out.println(a.getConst());
}

关于java - 在 Java 中重写常量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8467494/

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