 1. Generische Klassen / Was wird unter einer generischen Klasse bzw. einem generischen Interface verstanden? Wie werden diese definiert?
 -> Bei der Klassen- bzw. Interface defifition kann bereits ein Datetyp Bestimmt werden: z.B. public class Zug <E>
 -> Objektmethoden knnen auf den hier definierten Datentyp E bezug nehmen.
 
 2. Typisierung / Die Typisierung ist NICHT zwingend Notwendig! Aber welche Vorteile bringt die Typisierung?
 -> Vorteile sind Typsicherheit und das Entfallen von Typcast.
 
 3. Diamantoperator / Was ist ein Diamantoperator? 
 -> Wurde eine Variable bereits bei der Definition mit einen bestimmten Datentyp typisiert (z.B. <Zug>Elefant> z)
 -> So muss bei der Initialisierung der Variablen der Datentyp nicht erneut angegeben werden. (z.B. z = new Zug<>(new Elefant());)
 -> In dem Beispiel ist <> ist somit eine Abkrzung fr <Elefant>. die Schreibweise <> erinnert entfent an einen Diamanten
   
 4. Generische Methoden / Welche Methoden knnen nicht auf die Typisierungsinformation einer Klasse bzw. eines Interfaces zurckgreifen? Erlutern Sie warum nicht!
 -> Klassen- bzw. Interface-Methoden. Sie werden mit static definiert und werden somit dencht den Objekten zugeordnet. 
 -> Die Typisierungsinformation einer Klasse bzw. eines Interfaces ist allerdings nur fr Ihre Objekte gltig.
 
 5. Rckgabedatentyp / public static <T> T berechne (T a, T b) / Bei dieser Funktionsdefinition knnte man vermuten, dass die Variablen a und b den selben Datentyp besitzen Mssen. Erlutern sie kurz, warum diese Vermutung NICHT zutrifft. Wie wird hier der mgliche Rckgabe-Datentyp bestimmt?
 -> Der Datetyp T wird aus den Datentypen der bergabeparameter a und b extrahiert. Dies entspricht etwa der Suche nach dem "grten gemeinsamen Teiler" in der Mathematik. 
 
 6. Schlsselwrter und Operatoren / Typvariablen lassen sich durch zustzliche Schlsselwrter und Operatoren noch exakter definieren. Beschreiben sie kurz die Bedeutung diese zustzlichen Schlsselwrter und Operatoren:
 a) Schlsselwrter: 	extends, super
 -> extends legt fr den Datentyp eine zustzliche Bedingung fest. (z.B. <T extends A> -> Der Datentyp T muss die Klasse bzw. das Interface A erweitern oder implementieren)
 -> super legt fr den Datentyp eine zustzliche Bedingung fest. (z.B. <T super A> -> Der Datentyp T muss die VATER- Klasse der Klasse A sein.)
 b) Operatoren:			&, ?
 -> der & Operator erlaubt das Kombinieren unterschiedlicher Bedingungen
 -> der ? Operator ist ein Wildcard, wenn man sich nicht auf einen Konkreten Datentyp festlegen will.