Java Reference
In-Depth Information
this.constructor(name, vorname);
an die
constructor
-Eigenschat der „Superklasse“
weitergereicht und das ist der eine entscheidende Part zum Aufbau einer Superklasse-Sub-
klassen-Verbindung. Dieser Schritt muss aber zwingend mit der Kopplung der
prototype
-
Eigenschat der Subklasse an ein Objekt der Superklasse verbunden werden, sonst läut das
System in eine endlose rekursive (und erfolglose) Suche nach den „vererbten“ Eigenschaf-
ten (
Mitarbeiter.prototype = new Person();
).
Nachfolgend erzeugen wir dann ein Objekt vom Typ
Mitarbeiter
und fragen die vorhande-
nen Eigenschaten ab - sowohl die vererbten als auch die in
Mitarbeiter
neu hinzugefüg-
ten Eigenschaten. Die Methode
hasOwnProperty()
erlaubt dabei eine Überprüfung, ob ein
Objekt über eine bestimmte Eigenschat verfügt oder nicht.
Die Umsetzung einer Vererbung in JavaScript ist ofensichtlich möglich, aber sowohl wenig
robust als auch etwas undurchsichtig. Zudem können Sie nicht alle Möglichkeiten der Ver-
erbung so simulieren (etwa gibt es keine abstrakten oder inalen Klassen). Aus diesem
Grund nenne ich es auch nur eine „Simulation“ einer echten Vererbung.
Sie können auch durchaus den Nutzen eines solchen recht fragilen Konstrukts hinterfragen
und argumentieren, dass man in der „Subklasse“ selbst die vererbten Eigenschaten der
„Superklasse“ leicht hätte neu anlegen können. Aber je komplexer die vererbten Eigen-
schaten und vor allen Dingen Methoden werden, desto mehr Nutzen zieht man daraus.
Bild 13.9■
Vererbte und eigene Eigenschaten
■
■
13.5■Datenkapselung
Bei der echten objektorientierten Programmierung ist ganz wesentlich, dass ein Objekt
seine innere Struktur vollständig vor anderen Objekten oder überhaupt einem direkten
Zugrif von außen verstecken kann. Man nennt dies
Information Hiding
oder
Datenkapse-
lung
. Um das zu gewährleisten, stellen echte objektorientierte Sprachen sogenannte
Zugrifsmodiizierer
bzw.
Zugrifsmodiier
zu einer sehr feingliedrigen Steuerung des
Zugrifs auf die Objektinterna zur Verfügung. Das betrit etwa die Zugänglichkeit über die
Schlüsselwörter
private
,
protected
oder
public
, wenn man an Java oder C# denkt. Diese
gibt es durch die Nähe zu Java in JavaScript zwar auch als reservierte Schlüsselwörter, aber
Search WWH ::
Custom Search