Statische Methoden
Nach oben zu Dispatch-Methoden
Alle Methoden, bei deren Deklaration Sie keine Direktive angeben, sind statisch. Statische Methoden funktionieren wie normale Prozeduren oder Funktionen. Der Compiler ermittelt die genaue Adresse der Methode und verknüpft (d.h. bindet) beides während der Compilierung.
Der Hauptvorteil statischer Methoden besteht darin, dass der mit ihnen gegebene Verteilungsmechanismus sehr schnell arbeitet. Da der Compiler die genaue Adresse der Methode bestimmen kann, bindet er die Methode direkt. Virtuelle und dynamische Methoden verwenden im Gegensatz dazu indirekte Verfahren. Ihre Adressen werden erst zur Laufzeit ermittelt, was etwas mehr Zeit in Anspruch nimmt.
Eine statische Methode ändert sich nicht, wenn sie von einer abgeleiteten Klasse geerbt wird. Wenn Sie eine Klasse deklarieren, die eine statische Methode enthält, und danach eine neue Klasse ableiten, verwendet die abgeleitete Klasse genau dieselbe Methode an derselben Adresse. Das heißt, dass Sie statische Methoden nicht überschreiben können. Eine statische Methode führt stets dasselbe aus, unabhängig davon, in welcher Klasse sie aufgerufen wird. Wird in einer abgeleiteten Klasse eine Methode deklariert, die denselben Namen wie eine statische Methode der Vorfahrklasse trägt, dann ersetzt die neue Methode in der abgeleiteten Klasse die geerbte Methode.