next up previous contents index
Next: Überladen von Methoden Up: Vererbung Previous: Zusätzliche Regeln für Verdeckung

Dynamische Bindung

   

In polymorphen Sprachen kann bei überschriebenen Methoden erst zur Laufzeit festgestellt werden, welche Methode aufgerufen wird (dynamic method lookup):

   class UnterUndOber
   { Ober a[] = new Ober[100];
     for (int i = 0; i < a.length; i++)
        a[i] = prim(i) ? 
               new Ober() :
               new Unter();
     for (int i = 0; i < a.length; i++)
        a[i].WhoAreYou();
   }

Der Unterschied zwischen Überschreiben / Verdecken

   

Obwohl in mancher Hinsicht ähnlich, gibt es zwischen überschriebenen Methoden und verdeckten Attributen oder Klassenmethoden wichtige Unterschiede:

class Ober
{ String id = "ooo";
  String WhoAreYou()
  { return "Ober";
  }
}
class Unter extends Ober
{ String id = "uuu";
  String WhoAreYou()
  { return "Unter";
  }
  
  void identify()
  { Unter u = new Unter();
    Ober o = u;
    System.out.println(o.id);
    System.out.println(u.id);
    System.out.println(o.WhoAreYou());
    System.out.println(u.WhoAreYou());
  }

Ausgabe von new Unter().identify():

   ooo
   uuu
   Unter
   Unter


next up previous contents index
Next: Überladen von Methoden Up: Vererbung Previous: Zusätzliche Regeln für Verdeckung

Peter Pfahler, 1997