Override
 
Атрибут метода; указывает, что метод необходимо переопределить как виртуальный

Синтаксис

Type typename Extends basename
...
Declare Sub|Function|Operator|Property|Destructor ... ( [parameterlist] ) [As datatype] Override
...
End Type

Описание

В декларации метода, Override может быть использован, чтобы указать, что этот метод переопределяется как Virtual или Abstract метод из базового класса. Компилятор покажет ошибку, если метод не может переопределяться (только нестатический метод можно переопределить как виртуальный или абстрактный метод).

Использование Override не является обязательным для переопределения виртуального или абстрактного метода, но настоятельно рекомендуется, так как это поможет предотвратить непреднамеренные ошибки (не соответствующее имя/сигнатуру).

Override может быть указан только на декларации метода в блоке UDT, но не в теле метода, потому что это просто rin-time проверка в контексте иерархии наследования, и не влияет на метод в любом случае.

Override признается только в качестве ключевого слова в конце описаний процедур-элементов. Это все еще может быть использовано в качестве идентификатора в другом месте.

Пример

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
    Function = 0
End Function

Sub B.f1( )
End Sub

Function B.f2( ) As Integer
    Function = 0
End Function


Отличия от QB

  • Новое в FreeBASIC

См. также