polymorfisme met constructor zonder argumenten naar de inleiding
Zie ook "ster en veelhoekvormen" een toepassing van polymorfism
De code bestaat uit een schets , de twee subclasses "Vierkant" en "Cirkel" en de superclass "Vormen"
De schets doet niets meer dan het produceren van een vierkantje en een cirkel.
De positie en grootte van deze objecten is gecodeerd in de subclasses.
Door het aanmaken van constructors in deze classes krijgen de constructors in de schets argumenten.
zodat je de grootte en positie van de vormen in het setup deel van de schets kan construeren.
In de superclass komen de bewegingsmethodes.
De schets
// De meest simpele structuur van polymorfisme
// met een constructor zonder argumenten.
//1) Declareren van de objecten van het type Vormen
Vormen vormen1;
Vormen vormen2;
//Declareren van de objecten van het type Cirkel en Vierkant mag ook
//men spreekt van inheritance
//want de objecten erven eigenschappen van de superclass "Vormen"
//Cirkel vormen1;
//Vierkant vormen2;
void setup() {
size(480, 270);
//2) construeren van de objecten
vormen1 = new Cirkel();
vormen2 = new Vierkant();
}
//3) tekenen van de objecten
void draw() {
background(255);
vormen1.display();
vormen2.display();
}
De super- of parent class
class Vormen {
Vormen() { // de lege constructor
}
void display() {
//Dit is de lege display methode die wordt overreden in de "Cirkel" en "Vierkant" subclassen
//ivm overriding moeten alle methodes van de subclasses ook in de superclass staan
}
}
De subclass Vierkant
class Vierkant extends Vormen {
Vierkant() { // de lege constructor
}
void display() {
rectMode(CENTER);
fill(175);
stroke(0);
rect(width/2, height/2, 40, 40);
}
}
de subclass "Cirkel"
class Cirkel extends Vormen {
Cirkel() { // de lege constructor
}
void display() {
ellipseMode(CENTER);
stroke(0);
ellipse(width/4, height/4, 40, 40);
}
}