Referenz - OVERRIDE
Syntax:
TYPE Typname EXTENDS Elterntyp
DECLARE {SUB|FUNCTION|PROPERTY|OPERATOR} ... (Parameterliste) [AS Datentyp] OVERRIDE
END TYPE
Typ: Klausel
Kategorie: Klassen
OVERRIDE wird bei der Deklaration von Methoden einer Klasse verwendet und gibt an, dass die dazugehörige Methode eine virtuelle oder abstrakte Methode seiner Elternklasse überschreiben muss. Ist dies nicht der Fall, da in der Elternklasse keine derartige Methode existiert, wird der Compiler einen Fehler ausgeben.
Beachte:
Nur nicht-statische Methoden können virtuelle oder abstrakte Methoden überschreiben.
OVERRIDE muss nicht zum Überschreiben von Methoden der Elternklasse angegeben werden, es hilft allerdings, Fehler durch falsche Methoden-Signaturen (Parameter und Name der Methode) vorzubeugen.
OVERRIDE kann nur bei der Deklaration im UDT angegeben werden, nicht aber beim Methodenrumpf, da es sich dabei um eine reine Prüfung zur Compile-Zeit handelt, die sich nicht weiter auf die Methode auswirkt.
Beispiel:
Type A Extends Object
Declare Virtual Sub f1
Declare Virtual Function f2 As Integer
End Type
Type B Extends A
Declare Sub f1 Override
Declare Function f2 As Integer Override
End Type
Sub A.f1
End Sub
Function A.f2 As Integer
Return 0
End Function
Sub B.f1
End Sub
Function B.f2 As Integer
Return 0
End Function
Unterschiede zu QB: neu in FreeBASIC
Unterschiede zu früheren Versionen von FreeBASIC: existiert seit FreeBASIC v0.90.0
Unterschiede unter den FB-Dialektformen: nur in der Dialektform -lang fb verfügbar
Siehe auch:
VIRTUAL, ABSTRACT, TYPE, EXTENDS, OBJECT, Objektorientierung
Zusätzliche Informationen und Funktionen | ||||
---|---|---|---|---|
|