Registriert seit: 22. Mär 2005
Ort: Dingolfing
4.129 Beiträge
Turbo Delphi für Win32
|
Re: Komposition ähnlicher Objekte; Prozeduraufruf ohne "
7. Dez 2006, 22:46
Der Compiler greift immer auf die "frischeste" Methode zu. Das heißt er schaut bei dem Typen deiner Klasse nach, ob die Methode implementiert/überschrieben ist. Wenn ja, ruft er sie auf. Wenn nein, geht er eins höher in der Hierarchie. Das lässt sich nicht verhindern. Du kannst nur innerhalb der Methode mit inherited (Der Begriff inherited, nicht unser inherited) auf die vererbte Methode zugreifen.
Nennt sich dynamische Bindung oder so ähnlich.
EDIT: Genau, deshalb ist es egal ob du die Prozedur mit oder ohne as aufrufst. Der Compiler schaut beim Methodenaufruf in der Virtual Method Table nach, wie die Methoden deklariert sind, ein as bringt dabei also gar nichts.
Manuel Eberl „The trouble with having an open mind, of course, is that people will insist on coming along and trying to put things in it.“
- Terry Pratchett
|