java - 为什么我不能在子类中分配变量?

标签 java

为什么我不能在子类中分配变量 i?

class a {
   int i;
}


class b extends a {
   i=1;
}

最佳答案

您可以在子类中分配变量。您不能做的是在只允许声明的地方放置语句。 (请注意 int i = 10; 是声明 - 而不是语句。)

在这种情况下,构造函数可能是建立默认值(对于子类型)的合适位置:

class b extends a {
  public b () {
    i = 1;
  }
}

正如 damo 所建议的,初始化 block 也可以。这在 Initializing Fields tutorial 中讨论:

Normally, you would put code to initialize an instance variable in a constructor [but] there are two alternatives to using a constructor to initialize instance variables: initializer blocks and final methods.

关于java - 为什么我不能在子类中分配变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17352925/

相关文章:

java - 导入build.gradle时出现Intellij错误

java - 在 java 中的嵌套映射中更改内部值类型的最简单方法是什么?

Java 泛型列表类型的用法

java - hbm 中是否必须有一些关键字段

java - 在java中寻找一种方法在每次迭代时将(x,y)输入到数组

java - 即使捕获了所有异常,ScheduledExecutorService 也会停止工作

java - 如何使用 if 语句来知道玩家或计算机是否获胜?

java - JAVA中图片比较

java - 从命令行覆盖 Spring Boot 属性文件

java - 开发在线多人游戏的方法?