Переопределить данные члена в подклассе, использовать в реализации суперкласса?
В 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
, Я хочу, чтобы он напечатать последний вместо.
Я признаю, что это довольно плохая иерархическая практика ОО; Я нуждался в этом для очень конкретного случая, так как я делаю что-то с настройкой и отражением XML.
Есть ли модификатор, который может сделать это?
И да, я признаю, что есть обертки, которые можно использовать, чтобы обойти эту проблему в моем подклассе, то есть, указав, что содержимоеstuff[]
например, хранятся в массиве с другим именем. Я'Я просто пытаюсь сделать это простым, и мне любопытно в принципе.
Заранее большое спасибо!