Public MustInherit class MyAbstract class ... End
class 除开要包含关键字之外, 抽象类的定义与非抽象类的定义没什么两样.
抽象类包含了从其它类承继而来的属性及方法等等.但是,在抽象类中定义的类成员(属性及方法)是如何与衍生类中的定义元素产生联系的呢?在此并没有复杂的规则,但你作出的决定是与你所拥有的类的性能及它将衍生出来的
类所密切相关。
Public Overridable Sub Move(NewX As Integer, NewY As Integer)
... End Sub 2、为重载abstract base
类中的成员,衍生类在执行语句中须使用Overrides关键字段。如:
Public Overrides Move(NewX As Integer, NewY As Integer) ... End
Sub 3、抽象类中已有的功能不能在衍生类中重载。即是,衍生类必须使用抽象类定义的成员。如果你在抽象类中不使用任何特殊字段来定义任一成员将会产生该缺省。以下代码定义了抽象类中的Xpos属性。衍生类必须使用该属性,因为该属性不能被重载。如:
Public Property XPos() As Integer ... End
Property 利用MustOverride关键字来定义抽象类成员,该成员可以在衍生类中重载。以下举例说明了衍生类必须执行名为GetObjectAt()的方法。
Public MustOverride Function GetObjectAt(X As Integer, Y As
Integer) As Object 请注意MustOverride成员不需要End Sub
或End
Function语句。使用MustOverride最方便的地方在于它不仅规定了成员的名称同样也规定了成员的符号。先前的例子要求任一衍生类都需定义名称为GetObjectAt()的方法,因此会产生两种类型的整型变量以及返回一个类型对象。该方法是在衍生类中的执行是完全根据程序员的指令要求。通过MustOverride字段说明的方法一些时候也被称为abstract
成员。