为什么我不能在子类中分配变量 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/