【发布时间】:2012-08-27 10:49:21
【问题描述】:
我有这个类声明
abstract class A {
protected static String message = "Hello";
}
我希望这个字段传播到子类,以避免在所有子类中输入protected static String message = "Whatever";(每个子类中这个静态字段的值不同)。
我知道这行不通:
class B extends A {
static {
message = "Blablabla";
}
}
因为它实际上会修改A 的message,因为静态字段/方法不会被继承。我想知道是否有其他方法可以做到这一点,或者我是否必须重写每个子类的静态字段。
【问题讨论】:
-
是什么让您无法编写非静态
protected String getMessage()模板方法(在A中可以是抽象的或具体的,取决于您是否要允许默认行为) -
如果您希望它少于 4 个字,您期望什么样的解决方案?
-
这不是四个字。这是关于代码重用,这 - 据说 - 是使用 OOP 的好处之一。
标签: java inheritance static