sto*_*r96 -2 java constructor final protected subclass
为什么不允许从子类构造函数设置受保护的最终字段?
例:
class A {
protected final boolean b;
protected A() {
b = false;
}
}
class B extends A {
public B() {
super();
b = true;
}
}
Run Code Online (Sandbox Code Playgroud)
我认为在某些情况下会有意义,不是吗?
这是因为你不能改变最终字段的值.
但如果你真的想把它变成不同的价值,你可以这样做:
class A {
protected final boolean b;
protected A() {
this(false);
}
protected A(boolean b) {
this. b = b;
}
}
class B extends A {
public B() {
super(true);
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
369 次 |
| 最近记录: |