vb.net接口继承 vba 类继承( 三 )


要创建窗体 请单击 Project(项目) 然后单击 Add Windows Form(添加 Windows 窗体) 将窗体命名为 frmLineTest VB 并单击 OK(确定)
然后在该窗体上创建相应的控件并设置属性
构建 Line 类
接下来将构建要继承的 Line 类
从菜单中单击 Project(项目) 然后单击 Add Class(添加类) 键入如下所示的代码
Public Class LinePrivate mstrLine As StringProperty Line() As StringGetReturn mstrLineEnd GetSet(ByVal Value As String)mstrLine = ValueEnd SetEnd PropertyReadOnly Property Length() As IntegerGetReturn mstrLine LengthEnd GetEnd PropertyPublic Function GetWord() As StringDim astrWords() As StringastrWords = mstrLine Split( ToCharArray())Return astrWords( )End FunctionEnd Class
创建子类 既然窗体和基类都已经创建完毕 现在便可以开始执行继承了
单击 Project(项目) 然后单击 Add Class(添加类) 将该类命名为 LineDelim vb 并单击 OK(确定) 添加新类时 请修改 Visual 所创建的代码 使之与下面的示例代码相似
Public Class LineDelimInherits Line
End Class
因为添加了 Inherits Line 语句 所以您可以在这一新创建的类中使用 Line 类的所有属性和方法
试一试打开 frmLineTest vb 窗体 双击 Get Word(取词)按钮 向此按钮的单击事件过程添加以下代码
Protected Sub btnFirst_Click(ByVal sender As Object _
ByVal e As System EventArgs) Handles btnFirst ClickDim oLine As LineDelim = New LineDelim()oLine Line = txtLine TexttxtFirstWord Text = oLine GetWord()End Sub
运行项目 并在窗体上单击 Get Word(取词)按钮 您将看到 The 一字出现在按钮旁边的只读文本框中 Inherits 语句的功能非常强大 只需要使用这一个语句 就可以在 LineDelim 类中使用 Line 类的所有属性和方法 尽管这个新类尚未执行任何新的操作 但它却表明从 Line 类中继承的所有代码都可以正常工作
添加其他功能 现在 您可以使用其他属性和方法对 LineDelim 类进行扩展 要向 LineDelim 类添加两个新的属性 请执行以下步骤
在上一部分添加的 Inherits 语句后添加两个 Private 变量 如下所示
Private mstrDelim As String = Private mstrOriginal As String
键入如下代码 为这两个 Private 变量添加适当的 Property 语句 您可以将以下代码放在上面输入的两行代码后面(紧挨这两行)
Public Property Delimiter() As StringGetReturn mstrDelimEnd GetSet(ByVal Value As String)mstrDelim = ValueEnd SetEnd PropertyPublic ReadOnly Property OriginalLine() As StringGetReturn mstrOriginalEnd GetEnd Property
现在您可以使用 Delimiter 属性设置并获取 Private 变量 mstrDelim 的值
如果不希望其他人更改这些属性 您可以将属性设为只读 要执行此操作 请不再使用 Set 语句 并在 Property 语句中添加 ReadOnly 属性 有关示例 请参见上面代码中显示的 OriginalLine 属性声明
接下来 需要创建一个称为 ReplaceAll 的方法 此方法可以将文本行中的所有空格替换为传递到 Delimiter 属性中的分隔符字符
Public Function ReplaceAll() As StringmstrOriginal = MyBase LineReturn MyBase Line Replace( mstrDelim ToChar())End Function
ReplaceAll 方法通过基类的 Line 方法检索原始文本行 而以前从基类中检索属性时使用的是 MyBase Line 语法 ReplaceAll 函数将 MyBase Line 属性的值放入您刚刚为该类创建的 Private 变量 mstrOriginal 中 String 数据类型的 Replace 方法将字符串字符的所有实例替换为在 Delimiter 属性中设置的新分隔符字符 mstrDelimMyBase 关键字 可以从任一子类使用 MyBase 关键字 以调用基类中的任何属性或方法 即使基类的方法在子类中已被覆盖 您也可以使用该关键字对其进行调用 例如 如果在基类中存在 ReplaceAll 方法 但在子类中该方法已被覆盖 您可以从子类的 ReplaceAll 方法中调用基类的 ReplaceAll 方法

推荐阅读