在 Java 中,是否可以覆盖子类中的成员数据,并将该覆盖的版本作为超类实现中使用的数据?
换句话说,这就是我想要发生的事情,但它没有发生:
abstract public class BasicStuff {
protected String[] stuff = { "Pizza", "Shoes" };
public void readStuff() {
for(String p : stuff) {
system.out.println(p);
}
}
}
..
public class HardStuff extends BasicStuff {
protected String[] stuff = { "Harmonica", "Saxophone", "Particle Accelerator" };
}
此调用:
HardStuff sf = new HardStuff();
sf.readStuff();
... 打印Pizza
和Shoes
. 我希望它打印后者。
我认识到这是相当糟糕的分层 OO 实践;我需要它来处理一个非常具体的情况,因为我正在使用 XML 配置和反射做一些事情。
有没有可以使这种情况发生的修饰符?
是的,我确实认识到在我的子类中可以使用一些包装器来解决这个问题,例如,通过指示 的内容stuff[]
现在存储在具有不同名称的数组中。我只是想保持简单,原则上很好奇。
提前非常感谢!