Eine gute Antwort wäre:

Ein Array vom Typ Karte:

Karte[] karten = new Karte[12];

Array verwandter Objekte

Jetzt kann jedes Objekt, das zu der Hierarchie gehört, in einen Slot des Arrays passen. Das ist vergleichbar mit einem Grußkartenständer in einem Andenkengeschäft, der verschiedene Typen von Karten enthält. Hier ist ein Programmschnipsel:

Karte[] karten = new Karte[12];

karten[0]     = new KinderGeburtstag( "Valerie", 7 );
karten[1]     = new ErwachsenenGeburtstag( "Walter", 47 );
karten[2]     = new Geburtstag( "Zoe", 30 );
karten[3]     = new Feiertag( "Kelly" );
karten[4]     = new Valentin( "Jill", 42 );

for ( int j = 0; j < = 4; j++ )
  karten[ j ].gruss();

Dieser Code wird 5 verschiedene Kartenobjekte erzeugen und sie in das Array stellen. Dann wird er jedes Objekt in dem Array auffordern seine eigene Grußversion auszugeben. Das wird ausgezeichnet funktionieren:

Dear Valerie,
alles Gute zum 7. Geburtstag.
Was bist du gross geworden!!

Dear Walter,
alles Gute zum 47. Geburtstag.
Du siehst so jung aus wie immer!

Dear Zoe,
alles Gute zum 30. Geburtstag.

Dear Kelly,
frohe Feiertage!

Dear Jill,
herzliche Gruesse und Kuesse,
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

(Ich habe einige Leerzeilen des aktuellen Outputs entfernt.)

FRAGE 14:

Jetzt angenommen, dass dieser Code dem oben stehenden folgt:

Karte temp;

temp      = karten[0];
karten[0] = karten[1];
karten[1] = temp;
Inhaltsverzeichnis