Stel ik heb een abstracte classe DataContainer, hierin zitten een aantal abstracte methoden en een aantal niet abstracte methoden. Wanneer ik nu een andere klasse heb die hiervan extend, dan moet ik alle abstracte methoden implementeren in deze nieuwe classe (bv ScreenADataContainer). Als ik bepaalde methoden optioneel wil maken, dan maak ik in de classe DataContainer een gewonde public of protected methode aan met niets in. Wanneer ik deze methode dan wil gebruiken, overschrijf ik deze in de classe ScreenADataContainer.
Mijn probleem is nu hetvolgende:
Wanneer ik deze code run, dan zou ik verwachten dat "iets" zou te voorschijn komen. Maar dit gebeurt niet. Na een beetje zoeken kwam ik erachter dat eigenlijk de methode getValue() van DataContainer werd opgeroepen.
Nu is mijn vraag, hoe kan ik ervoor zorgen dat de methode getValue() van ScreenADataContainer wordt opgeroepen. Let wel, deze methode is niet verplicht.
Ik hoop dat de uitleg + vraag een beetje duidelijk is.
Mijn probleem is nu hetvolgende:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
| public void init()
{
ScreenADataContainer sdc = new ScreenADataContainer();
sdc.setValue("iets");
doSomething(sdc);
}
public void doSomething(DataContainer dataContainer)
{
String aValue = dataContainer.getValue();
System.out.println(aValue);
} |
Wanneer ik deze code run, dan zou ik verwachten dat "iets" zou te voorschijn komen. Maar dit gebeurt niet. Na een beetje zoeken kwam ik erachter dat eigenlijk de methode getValue() van DataContainer werd opgeroepen.
Nu is mijn vraag, hoe kan ik ervoor zorgen dat de methode getValue() van ScreenADataContainer wordt opgeroepen. Let wel, deze methode is niet verplicht.
Ik hoop dat de uitleg + vraag een beetje duidelijk is.