====== Interfaces, Polymorphismus ====== Du fühlst Dich inzwischen sicher beim Schreiben eigener Klassen und hast verstanden, wie Du das Prinzip der Vererbung (''extends''...) nutzen kannst, um bestehende Klassen zu erweitern? \\ \\ -> Dann lass uns den nächsten Schritt gehen! * [[:klassen2:interfaces:start|Interfaces]] \\ Ein Interface ist eine Zusicherung, dass eine Klasse bestimmte Methoden hat. In diesem Kapitel lernst Du, wie man Interfaces definiert und wie man sie nutzt, um beispielsweise Ereignishandler zu schreiben. \\ \\ * [[:klassen2:casting:start|Casting, instanceof]] \\ Es gibt immer wieder Situationen, in denen der Typ einer Objektvariable von dem Typ des Objekts abweicht, auf das sie zeigt. Ich zeige Dir, wann diese Situationen auftreten und wie man sie meistert. \\ \\ * [[:klassen2:abstrakt:start|Abstrakte Klassen]] \\ Du weißt schon, dass eine Unterklasse die Methoden einer Oberklasse überschreiben kann. Oft kommt es sogar vor, dass man Methoden in der Oberklasse definiert, sie aber erst in den Unterklassen mit Inhalt (d.h. Programmcode) füllen möchte. In diesen Situationen erklärt man die Oberklasse als **abstrakte** Klasse. \\ \\ * [[:klassen2:polymorphismus:start|Überschreiben von Methoden, Polymorphismus]] \\ Überschreiben zwei Unterklassen dieselbe Methode einer Oberklasse, so kommt es zu Polymorphismus. Wie man das nutzen kann, erfährst Du in diesem Kapitel. \\ \\