OVERRIDE

FreeBASIC-Referenz » Alphabetische Befehlsreferenz » O » 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