Override
 
方法属性;指定方法必须覆盖虚拟

语法

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

说明

在方法声明中,可以使用Override来表示此方法可能会覆盖基类的虚拟抽象方法。那么编译器会显示一个错误,如果该方法不会覆盖任何东西(只有非静态方法可以覆盖虚拟或抽象方法)。

强制建议使用Override来覆盖虚拟或抽象方法,因为它有助于防止无意的错误(名称/签名不匹配)。

只能在UDT块中的方法声明中指定Override,但不能在方法体上指定,因为它只是在继承层次结构的上下文中的编译时检查,并且不会以任何方式影响该方法。

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

参考