Suchen und Finden
Service
Infos und Kontakt
5 Weiterführende OOP-Konzepte (149-150)
Dieses Kapitel behandelt weiterführende objektorientierte Techniken:
- Durch Vererbung können Sie bestehenden Klassencode erweitern und wiederverwenden.
- Interfaces erlauben die »Vererbung« von Design-Elementen (statt von Code).
- Polymorphie, die Erscheinung eines Objekts als Angehöriger eines »verwandten« Typs, gehört zu den mächtigsten und wirkungsvollsten Konzepten der objektorientierten Programmierung.
- Java Generics erlaubt die Definition parametrisierter statt typisierter Klassen.
- Exceptions sind ein objektorientierter Mechanismus zur Verarbeitung von Fehlern.
5.1 Vererbung
Vererbung ist ein weiteres, ganz wesentliches Konzept der objektorientierten Programmierung, welches es ermöglicht, neue Klassen auf der Basis bereits vorhandener Klassen zu definieren. Durch die Vererbung wird festgelegt, dass die neu definierte Klasse, auch abgeleitete oder Subklasse genannt, zusätzlich zu den in ihrer Definition aufgeführten Feldern und Methoden über sämtliche (nicht privaten) Felder und Methoden der Basis- oder Superklasse verfügt. Auf diese Weise kann praktisch jede Klasse von jeder anderen Klasse abgeleitet werden, was jedoch nicht immer sinnvollreich ist. Sinnvolle Vererbung erkennt man meist daran, dass das so genannte Istein- Kriterium erfüllt ist:
Ist-ein-Kriterium: Objekte abgeleiteter Klassen sollten sämtliche Eigenschaften der Basisklassen in korrekter Weise teilen, d.h. ein Objekt der abgeleiteten Klasse sollte immer auch als Instanz der Basisklasse angesehen werden. So dürfte die Ableitung einer Klasse Bungalow von einer Basisklasse Haus sinnvoll sein, da ein Bungalow auch ein Haus ist, während die Ableitung von einer Klasse Fahrzeug äußerst zweifelhaft ist.
Der ernste Hintergrund für diese Regel ist, dass Objekte abgeleiteter Klassen auch als Objekte ihrer Basisklassen angesehen und eingesetzt werden können (Polymorphie, siehe 5.2). Die entsprechenden Typumwandlungen nimmt Java automatisch vor (siehe 2.8).
Weitere Vorteile ergeben sich, wenn mehrere Klassen durch Vererbung in eine Klassenhierarchie eingebunden werden:
- Gemeinsame Eigenschaften von verwandten Klassen (beispielsweise Angestellter, Manager etc.) brauchen durch Verlegung in eine gemeinsame Basisklasse (Mitarbeiter) nur einmal implementiert zu werden, wodurch auch die Wartbarkeit des Quellcodes erleichtert wird.
- Umgekehrt gewährt die Ableitung von Basisklassen ein einheitliches Erscheinungsbild verwandter Klassen. Schließlich ist wichtig zu verstehen, dass bei der Vererbung Implementierung und Schnittstelle vererbt werden.
Gerade beim ersten Kontakt mit dem Konzept der Vererbung neigen Programmierer dazu, sie hauptsächlich als Mittel zur Wiederverwertung bestehenden Codes anzusehen. Doch häufig ist die Vererbung der öffentlichen Schnittstelle (Namen der public-Felder, Signatur der public-Methoden) viel interessanter, und nicht selten wird die Implementierung der geerbten public-Methoden in den abgeleiteten Klassen sogar durch eigene Implementierungen ersetzt (wichtige Technik der Polymorphie, siehe 5.2). So könnte die oben angesprochene Klasse Mitarbeiter beispielsweise eine public-Methode gehaltErhoehen() definieren, die in den abgeleiteten Klassen Angestellter und Mitarbeiter durchaus unterschiedlich implementiert werden kann.
Anmerkungen
- Terminologie: Als Basis- oder Superklasse bezeichnet man eine Klasse, die ihre Elemente an eine neu definierte Klasse vererbt. Eine Klasse, die Elemente von einer Basisklasse erbt, bezeichnet man als abgeleitete oder Subklasse.
Alle Preise verstehen sich inklusive der gesetzlichen MwSt.; Ersparnis im Vergleich zur Printversion
























