Dies ist eine alte Version des Dokuments!
Generische Klassen
Stellen Sie sich eine Klasse Liste
vor, die beliebige Objekte speichern kann und beispielsweise Methoden add
(hinten hinzufügen) und getFirst
(erstes Element zürückliefern) besitzt:
class Liste { void add(Object element){ ... } Object getFirst(){ ... } }
Die Klasse Object
ist Oberklasse aller Klassen in Java. Damit die Liste beliebige Objekte speichern kann, muss der Parameter von add
vom Typ Object
sein, ebenso der Rückgabe-Datentyp von getFirst
.
Das ist aber ungünstig: Instanziert man beispielsweise eine Liste Liste kundenliste
zum Speichern von Objekten der Klasse Kunde
, so wünscht man sich, dass kundenliste.add
nur Objekte der Klasse Kunde
akzeptiert. Außerdem möchte man beispielsweise schreiben können
Kunde k = kundenliste.getFirst();
Der Compiler meldet in diesem Fall einen Fehler, da er nicht weiß, dass in die kundenliste
nur Objekte der Klasse Kunde
gesteckt werden und kundenliste.getFirst()
somit auch nur solche zurückliefern wird.