Zastąp dane członkowskie w podklasie, użyj w implementacji superklasy?

Czy w Javie możliwe jest zastąpienie danych członkowskich w podklasie i czy ta nadpisana wersja jest danymi wykorzystywanymi w implementacji superklasy?

Innymi słowy, oto co próbuję osiągnąć, a to się nie dzieje:

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" };
}

To wezwanie:

HardStuff sf = new HardStuff();
sf.readStuff();

... drukujePizza iShoes. Chcę, żeby zamiast tego drukował ten drugi.

Uznaję, że jest to raczej zła hierarchiczna praktyka OO; Potrzebowałem go do bardzo konkretnego przypadku, ponieważ robię coś z konfiguracją XML i refleksją.

Czy istnieje modyfikator, który może to spowodować?

I tak, zdaję sobie sprawę, że istnieją opakowania, które można wykorzystać do obejścia tego problemu w mojej podklasie, tj. Wskazując, że zawartośćstuff[] są teraz przechowywane w tablicy o innej nazwie, na przykład. Po prostu staram się, aby to było proste i jestem z zasady ciekawy.

Z góry dziękuję!

questionAnswers(3)

yourAnswerToTheQuestion