next up previous contents index
Next: Zusätzliche Regeln für Verdeckung Up: Vererbung Previous: Verdecken durch Klassenmethoden

Überschreiben durch Instanzmethoden

 

Eine Instanzmethode   überschreibt alle Methoden gleicher Signatur in Oberklassen und Ober-Interfaces, die ansonsten zugreifbar wären (d.h. z.B. nicht die privaten Methoden).

Eine Instanzmethode darf allerdings keine Klassenmethode überschreiben!

Die einzige Möglichkeit, aus der Unterklasse auf überschriebene Instanzmethoden zuzugreifen ist der

super-Methodenaufruf

class Ober
{ String WhoAreYou()
  { return "Ober";
  }
}
class Unter extends Ober
{ String WhoAreYou()
  { return "Unter";
  }

  void identify()
  { System.out.println(
        "I'm " + WhoAreYou() + 
        ". My superclass is " +
        super.WhoAreYou() + ".");
    Ober o = (Ober)this;
    System.out.println(
        "My superclass is not " +
        o.WhoAreYou() + ".");
    }
}

Die Anweisung new Unter().identify(); schreibt:

   I'm Unter. My superclass is Ober.
   My superclass is not Unter.


next up previous contents index
Next: Zusätzliche Regeln für Verdeckung Up: Vererbung Previous: Verdecken durch Klassenmethoden

Peter Pfahler, 1997