Objektorientierte Programmierung

Methoden überschreiben

Angenommen jedes Auto hätte eine bestimmte minimale und maximale Geschwindigkeit, dann könnte man diese Werte als Klassen-Eigenschaften festlegen:

Auto.MIN_SPEED = -30;
Auto.MAX_SPEED = 100;

Diese Werte werden allerdings in der von Fortbewegungsmittel geerbten Methode beschleunigen(value) noch nicht verwendet. Um dies zu ändern, kann die ursprüngliche Methode überschrieben werden.

// Typ definieren
function Auto() {
}

// Klassen-Eigenschaften festlegen
Auto.MIN_SPEED = -30;
Auto.MAX_SPEED = 100;

// Vererbung durchführen
Auto.prototype = new Fortbewegungsmittel();
Auto.prototype.constructor = Auto;

// geerbte Methode überschreiben
Auto.prototype.beschleunigen = function(value) {
  var tmpGeschw = this.geschwindigkeit   value;
  if ((value < 0 && tmpGeschw >= Auto.MIN_SPEED) ||
      (value > 0 && tmpGeschw <= Auto.MAX_SPEED)) {
    // überschriebene Methode aufrufen
    Fortbewegungsmittel.prototype.beschleunigen.call(this, value);
  }
};

Auch priviligierte Methoden können überschrieben werden, allerdings sind die geerbten Methoden dann nicht mehr aufrufbar.