 1. Komponenten / Welche Komponenten knnen Interfaces enthalten?
 Klassische Interface: Konstanten und abstrakte Methoden
 Erweiterte Interface: Konstanten, abstrakte Objektmethoden, objektmethoden MIT default-Definition, Klassenmethoden

 2. Schlsselwrter / Welche Schlsselwrter knnen bei der Definition dieser Komponenten entfallen, da sie automatisch ergnzt werden?
 public (Sichtbarkeit ist immer public)
 static (Konstanten sind immer static und somit dem Interface zugeordnet)
 abstract (Objektmethoden ohne default-Definition sind immer abstract)
 
 3. Bedeutung / Nennen Sie Einsatzmglichkeiten von Interfaces.
 -> Bereitstellen einer Polymorphismus-Schablone fr logisch nicht verwandte Klassen
 -> Bekanntgabe von Konstanten.
 -> Bereitstellen von Klassen-(Interface-) Methoden (Hilfsmethoden)
 -> Da eine Klasse mehrere Interfaces implemenieren kann, dann man eine Mehrfachvererbung mit Interfaces simulieren.
 -> Als Funktionales Interface (Nur genau eine abstrakte Methode) knnen Interface als Basis fr die Funktionale-Programmierung dienen.
   
 4. Abgrenzung / Grenzen Sie die Einsatzmglichkeiten und Anwendungsmglichkeiten von Interfaces und abstrakten Klassen gegeneinander ab.
 a) Wann wir man welche Umsetzung whlen?
 -> Sowohl abstrakte Klassen als auch Interfaces knnen zum bereitstellen passender Polymorphismus-Schblonen dienen.
    -> Sind die Klassen logisch miteinander verbunden, so dass die Vererbung sinvoll genutzt werden kann, sind abstrakte Klassen
       dabei den Interfacen vorzuziehen.
       (Klassen Mann / Frau -> abstakte Klasse Mensch)
    -> Haben die Klassen auer vergleichbarerer Objektmethoden keine Gemeinsamkeiten, die sinnvoll vererbt werden knnen, so sind
       Interface den abstrakten Klassen vorzuziehen.
       (Klassen Auto / Elefant -> interface Groesse) 
  
 5. Mehrfachvererbung / In Java gibt es keine Mehrfachvererbung.
    Ein  Klasse kann somit immer nur genau eine Vaterklasse besitzen und nicht mehrere.
    Aber eine Klasse kann beliebig viele Interfaces implementieren.
    Welchen Auswirkungen haben diese Eigenschaften auf die Einsatzmglichkeiten und die Gestaltung von Interfaces.
 -> Eine abstrakte Klasse als Vatrerklasse zu erweitern bedeutet, dass keine andere Klasse direkte Vatrerklasse werden kann.
    Somit werden abstrakte Klassen nur wohl-berlegt und nur bei einem wirklichen ist-Ein-Beziehungsverhltnis eingesetzt.
 -> Ein Interface zu implementieren ermglicht es das Interface als Polymorphismussschablone fr eigene Objekte nutzen zu knnen,
    ohne dabei Einschrnkungen in Kauf nehmen zu mssen.
 -> Da eine Klasse beliebig viele Interface imlementieren kann ist es Ratsamer mehrer kleine
    aber in sich thematisch und logisch stimmige Interfaceru realisieren, als mglichst viele unterschiedliche Aspekte
    in nur einem einzelnen dafr um so greren Interface abzudecken.   
    
    
 6. Adapterklasse / Was ist eine Adapterklasse? Wann wird man Sie verwenden?
 -> Adapterplassen fllen alle abstrakten Methoden eines Interfaces mit Leerrmpfen auf.
    Adapterklassen knnen dann als Vaterklassen weiterer Klassen verwendet werden,
    die dann nicht mehr selber alle Interface-Methoden umsetzen mssen.
    Stattdessen gengt es die vererbten Methoden aus der Adapterklasse bei bedarf zu berlagen.
 
 7. Default Implementierung / Wie kann man mit Hilfe der default-Implementierunger von Methoden in einem Interface, Adapterklassen vermeiden?
 -> Default Implementierungen in Interfaces ermglichen das Erzeugen von Objekt-Methoden mit vordefiniertem Standard-Rumpf.
    Durch die Standardrmpfe knnen die Aufgaben von Adapterklassen direkt mit erledigt werden.
    
 