m0s*_*it0 3 java inheritance static
我有这个班级声明
abstract class A {
protected static String message = "Hello";
}
Run Code Online (Sandbox Code Playgroud)
我希望这个字段传播到子类,以避免protected static String message = "Whatever";在所有子类中键入(每个子类中此静态字段的值不同).
我知道这不起作用:
class B extends A {
static {
message = "Blablabla";
}
}
Run Code Online (Sandbox Code Playgroud)
因为它实际上会修改A,message因为静态字段/方法不会被继承.我想知道的是,是否还有其他方法可以做到这一点,或者我是否必须重写每个子类上的静态字段.
我建议使用受每个子类而不是静态字段覆盖的受保护方法getMessage().
class B extends A {
@Override
protected String getMessage() {
return "Blablabla";
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1121 次 |
| 最近记录: |