我有一个abstract
超类,它有一个protected String
变量。它不在超类中初始化。引用子类中的抽象超类字段
我想要做的就是初始化并在一个子类中使用它。所以,我有这样的事情:
public class MySubclass extends MyAbstractSuperclass {
thing = "i'm a thing";
[...]
}
似乎很简单,因为继承的全部意义在于重复使用在不同的上下文类和农田。但是这是错误的:Syntax error on token "thing", VariableDeclaratorId expected after this token
。
我可以通过在子类初始化时加上括号来编译它。我想知道的是为什么第一种方法是错误的,为什么使用括号来修正它。谢谢你的帮助。
编辑:我很欣赏提示,我可以通过使用构造函数来解决此问题。然而,我仍然很好奇以这种方式使用超类字段的真正问题,因为在我看来,它非常直观。另外,为什么大括号可以修正它,用括号括起来的意思是什么意思?一个循环结构?
大括号创建一个[实例初始值设定项](http://stackoverflow.com/questions/6763550/why-java-instance-initializers) – GriffeyDog