vb.net接口继承 vb 继承( 八 )


实现继承
本文将创建一个新类 LineDelim 它将继承 Creating Classes in NET(英文)一文中创建的 Line 类的所有功能 之后 本文将通过添加两个其他属性和一个方法对 Line 类进行扩展 要添加的第一个属性是 Delimiter 使用它可以获得一个分隔符字符 并将其设置到类中 此分隔符将用于将行中的所有空格替换为分隔符字符 要添加的第二个属性是 OriginalLine 它将用于在向文本行插入新的分隔符之前保留文本的原始行 要创建的新方法是 ReplaceAll() 它将用于将文本行中的所有空格替换为分隔符字符 然后我们将学习如何覆盖 GetWord 方法 以便使用此分隔符(而不是空格)分隔文本行并搜索第一个词构建示例窗体
要创建窗体 请单击 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 属性中的分隔符字符

推荐阅读