Overerving

Naast de methode start() bevat de DobbelApp nog een methode: main().
Elk Java-programma moet een methode main() bevatten.
Bij het uitvoeren van de app begint Java altijd met de opdrachten die in main() staan.

In dit geval staat er maar één opdracht: launch(args);

Deze opdracht zorgt ervoor dat de methode start() als eerste wordt uitgevoerd, waarbij een Stage-object wordt gecreëerd met de naam primaryStage.

Als je nauwkeurig de code bekijkt, zie je dat de methode niet voorafgegaan wordt door een punt en een klasse- of objectnaam.
Dat betekent, dat de methode uit de eigen klasse, de klasse DobbelApp afkomstig is.

In de programmacode van de klasse DobbelApp staat nergens een definitie van de methode launch().
Toch kent DobbelApp de methode wel.
Dit komt door een belangrijk kenmerk van objectoriëntatie, namelijk overerving (inheritance).
Een klasse kan worden gedefinieerd als een uitbreiding van bestaande klassen. Meestal gebeurt dat ook.
De nieuwe klasse, die op die manier ontworpen wordt, erft alle attributen (eigenschappen) en methoden en kan er nieuwe aan toevoegen of bestaande vervangen.

In dit voorbeeld is DobbelApp een uitbreiding van de bestaande klasse Application.
DobbelApp erft de velden en methoden van de klasse Application, waaronder de methode launch().

Aan deze klasse zijn een methode (dobbelKnop_Action) en objecten (dsteen, dobbelLnop etc.) toegevoegd.

De klasse Application kent al een methode start().
Deze methode wordt vervangen door de methode start() van DobbelApp.
Dit wordt overriding genoemd.
Met name bij het ontwerpen van grote programma’s is inheritance van belang.