Bei der Einführung des Begriffs Objekt habe ich geschrieben, daß Menschen intuitiv erkennen, ob ein "Ding" ein Auto ist, also zur Klasse der Autos gehört, oder nicht. Wenn sich Objekte wie ihre Pendants in der realen Welt verhalten (wie wir weiter oben gesehen haben), liegt es nahe, auch im Bereich der Objektorientierung nach Klassen zu suchen. Und tatsächlich kommt dem Begriff Klasse große Bedeutung zu. Wenn Sie sich an das Beispielprogramm aus dem ersten Kursteil erinnern, war die entsprechende englische Übersetzung, class, sogar das erste Schlüsselwort. Was also sind Klassen? Sie liefern den Bauplan für Objekte, indem sie den kompletten Satz an Variablen und Methoden beschreiben, der einem Objekt zur Verfügung stehen soll. Ein Objekt nennt man Instanz einer Klasse, den Vorgang, der aus einer Klasse ein Objekt erzeugt, nennen wir instantiieren. Vielleicht hilft für das bessere Verständnis eine Analogie aus der realen Welt. Wenn ein beliebiges Auto ein Objekt ist, können Sie sich die Menge aller nötigen Blaupausen und Fertigungsanleitungen als Klasse vorstellen. Der Fertigungsprozeß eines neuen Wagens anhand dieser Vorgaben wäre dann das Instantiieren. Einer wissenschaftlichen Sichtweise etwas näher käme die Vorstellung einer Klasse als nicht realisierten ideal-typischen Prototyp, wobei das Instantiieren die Anfertigung eines absolut identischen Duplikats darstellt. Leider haben wir noch nicht alle relevanten Aspekte, die Objekte und Klassen betreffen, diskutiert. Lassen Sie mich dennoch kurz innehalten, um die Vorzüge von Klassen aufzuzeigen. Klassen liefern also die Vorgaben für Objekte, von denen im Rahmen eines Programmablaufs viele erzeugt werden können. Zusätzlich bieten objektorientierte Programmiersprachen die Möglichkeit, eine Klasse als Prototyp für neue Klassen zu nehmen, die sich in vielen Punkten wie ihre Vorgänger verhalten, aber unter Umständen neue, zusätzliche Funktionen ausführen können. Wir fassen diese Mechanismen unter dem Schlagwort Vererbung zusammen. Da Ableitungen von Klassen mehrmals hintereinander ausgeführt werden können, entsteht eine sogenannte Klassenhierarchie. Die jeweils übergeordnete Klasse nennt man Oberklasse, die abgeleitete heißt Unterklasse. Die Vorteile dieses Konzepts liegen auf der Hand. Vererbung gestattet dem Programmierer, Code von Oberklassen viele Male wieder zu verwerten. Unterklassen liefern auf Basis derer Verhaltensweisen spezialisierte Verhaltensmuster. JAVA - 4 / 10
|  |  | # 65