java - 如何在派生类中重新定义常量变量? [JAVA]

标签 java oop constants derived-class

假设我有课

class A {
   public static final int x = 1;
}

我有一个派生类

class B extends A {
   x = 2; // want to redefine x as 2 here
}

我将如何在派生类 B 中将常量重新定义为 2?我记得在使用 C++ 时有一个构造函数“技巧”,但我不知道在 Java 中该怎么做。我什至尝试从 A 类的变量声明中删除“final”,但 B 类甚至不知道 X 已定义。它说我需要在 B 类中的 x 前面添加“public static final int”,但我认为它已经在 A 中定义了。

最佳答案

你不能。静态属于类而不是实例。

但是为了实现一个技巧,您可以创建另一个同名的常量。 您可以使用

访问该常量

A.x 或 B.x

class B extends A {
  public static final x = 2;
}

在此示例中 A.x=1B.x=2

或者,如果您想按照您的要求重新定义,您可以这样做,但这毫无意义

class B extends A{
  static{
    x=2;// assuming 'x' not final
  }
}

在此示例中 A.x=2B.x=2

关于java - 如何在派生类中重新定义常量变量? [JAVA],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29107056/

相关文章:

java - 使用 Maven 处理依赖 hell 的系统方法

java - Azure mongodb $in 查询不起作用

java - GWT 获取新旧窗口大小

php - 首次尝试使用 PHP/MySQL 进行 OOP

php - 在php中访问<<<HTML中定义的变量

java - 在android中POST后检索网站

c++ - extern "C"的功能是什么?

php - 对象标识符的副本和对对象标识符的引用——在实际应用中应该使用哪一个?

c++ - 关于 const 限定符和构造函数的问题

java - 在接口(interface)中声明常量,但在实现中定义常量