Weitere aktuelle Java-Titel finden Sie bei dpunkt.
 Inhaltsverzeichnis   Auf Ebene Zurück   Seite Zurück   Seite Vor   Auf Ebene Vor   Eine Ebene höher   Index


4.5.3

Überschreiben von Methoden


Bisher wurden lediglich Konstruktoren und Methoden hinzugefügt. Häufig ist es aber erforderlich, dass eine Unterklasse eine geerbte Methode anders implementieren muss, als es bei der Oberklasse der Fall ist. Hierzu kann die Unterklasse die betreffende Methode überschreiben.

Zur Verdeutlichung sei eine Klasse RoundSquare definiert, die von Square abgeleitet wird. Sie stellt ein Quadrat mit abgerundeten Ecken dar.
  public class RoundSquare extends Square {
    int r; // Eckenradius
  
    public RoundSquare(int x, int y, int color,
                                     int a, int r) {
      super(x, y, color, a);
      this.r = r;
    }
  
    public void resize(int a) {
      r *= a/this.a;
      super.resize(a);
    }
  
    public int area() {
      return (int)(super.area()-r*r*(4-Math.PI));
    }
  
  }
RoundSquare benötigt ein weiteres Datenelement r für den Radius der runden Ecke. Ferner wird ein Konstruktor definiert, der das Belegen aller Datenelemente erlaubt. Der Konstruktor von Square wird benutzt, um die geerbten Datenelemente zu setzen.

Die Methode resize() wird in RoundSquare überschrieben, um zusätzlich den Krümmungsradius der Ecken anzupassen. Da wir die Funktionalität der geerbten resize()-Methode bezüglich der Seitenlänge voll übernehmen können, rufen wir die geerbte Methode auf, um a einzustellen. Entsprechend wird area() unter Wiederverwendung der geerbten Methode überschrieben.

Falls die geerbte Methode Exceptions auslöst und über eine throws-Klausel verfügt, darf der throws-Klausel keine neue Exception mehr hinzugefügt werden. Im Detail wird dieser Sachverhalt im Abschnitt 5.10 erläutert.


 Inhaltsverzeichnis   Auf Ebene Zurück   Seite Zurück   Seite Vor   Auf Ebene Vor   Eine Ebene höher   Index

Copyright © 2002 dpunkt.Verlag, Heidelberg. Alle Rechte vorbehalten.