VB.NET接口范例ISpeak

我有一个朋友,他学习 VB.NET 时间还不是很长。这几天,他对面向对象编程中的接口突然产生了很大的兴趣。为了帮助他让他能够对接口有一个初步的、正确的认识,我写了下面的例子。同时,希望本例对目前还不是很了解接口的朋友有所帮助。

VB.NET接口范例

在这个例子中,我定义了一个名为 ISpeak 的接口,它其中包括了三个签名(请参见下面程序)。由于接口是代表一种约定或者说是一种规则,它并不包含这种约定或者规则的具体实现。所以,我们只需要在接口中定义签名即可。在该接口中,包括了三个成员签名,它们分别代表了属性、方法以及函数。

接下来,我又定义了三个类,分别是 Baby、Children 和 Adlut ,这个三类都实现了上述接口。并且,在每个类实现接口的成员时,都给出了具体的实现。

来看代码:

 
 
 
  1. '定义一个接口  
  2. Public Interface ISpeak  
  3.     '仅定义签名,不包含任何实现  
  4.     ReadOnly Property CanSpeak() As Boolean               '属性  
  5.     Sub Speak()                                                          '方法  
  6.     Function GetSpeakLevel() As SpeakLevelEnum          '函数  
  7. End Interface 
  8.  
  9. '说话水平枚举  
  10. Public Enum SpeakLevelEnum  
  11.     Bad     '很差  
  12.     Ordinary    ‘一般  
  13.     Fluent        '流利  
  14. End Enum 
  15.  
  16. Public Class Baby : Implements ISpeak             '通过 Implements 关键字实现接口  
  17.     '以下是实现该接口的所有成员  
  18.     Public ReadOnly Property CanSpeak() As Boolean Implements ISpeak.CanSpeak  
  19.         Get 
  20.             Return False 
  21.         End Get 
  22.     End Property 
  23.  
  24.     Public Function GetSpeakLevel() As SpeakLevelEnum Implements ISpeak.GetSpeakLevel  
  25.         Return SpeakLevelEnum.Bad  
  26.     End Function 
  27.  
  28.     Public Sub Speak() Implements ISpeak.Speak  
  29.         Console.WriteLine("(旁白):他是一个婴儿,还不会说话。")  
  30.     End Sub 
  31. End Class 
  32.  
  33. Public Class Children : Implements ISpeak  
  34.     Public ReadOnly Property CanSpeak() As Boolean Implements ISpeak.CanSpeak  
  35.         Get 
  36.             Return True 
  37.         End Get 
  38.     End Property 
  39.  
  40.     Public Function GetSpeakLevel() As SpeakLevelEnum Implements ISpeak.GetSpeakLevel  
  41.         Return SpeakLevelEnum.Ordinary  
  42.     End Function 
  43.  
  44.     Public Sub Speak() Implements ISpeak.Speak  
  45.         Console.WriteLine("哈哈,我是一个快乐的孩子!")  
  46.     End Sub 
  47. End Class 
  48.  
  49. Public Class Adult : Implements ISpeak  
  50.  
  51.     Public ReadOnly Property CanSpeak() As Boolean Implements ISpeak.CanSpeak  
  52.         Get 
  53.             Return True 
  54.         End Get 
  55.     End Property 
  56.  
  57.     Public Function GetSpeakLevel() As SpeakLevelEnum Implements ISpeak.GetSpeakLevel  
  58.         Return SpeakLevelEnum.Fluent  
  59.     End Function 
  60.  
  61.     Public Sub Speak() Implements ISpeak.Speak  
  62.         Console.WriteLine("OK, 我是成年人了,不但能流利地说母语,还会说外语。")  
  63.     End Sub 
  64. End Class 
  65.  
  66.  
  67. '程序入口点  
  68. Public Class AppStart  
  69.     Shared Sub Main()  
  70.         Dim person1 As New Baby  
  71.         Dim person2 As New Children  
  72.         Dim person3 As New Adult  
  73.  
  74.         person1.Speak()  
  75.         person2.Speak()  
  76.         person3.Speak()  
  77.  
  78.         If person2.GetSpeakLevel > SpeakLevelEnum.Bad Then 
  79.             Console.WriteLine(" Person2 的说话水平不算很差")  
  80.         End If 
  81.  
  82.         If person1.CanSpeak Then 
  83.             Console.WriteLine(" Person1 会说话")  
  84.         Else 
  85.             Console.WriteLine(" Person1 不会说话")  
  86.         End If 
  87.  
  88.         Console.Read()  
  89.     End Sub 
  90. End Class 
  91.  

在 VS2005/2008 中建立一个“控制台项目”项目,将默认的 Module1.vb 删除,在该项目中添加一个类,将上述代码复制到这个类中覆盖原有内容,即可运行调试。

VB.NET接口范例学习经验

关于接口,学习总结如下:

1、定义接口名,应按照惯例,将接口名的***个字母命名为 I,如上例中的 ISpeak,这样做的目的是见名知义,原因是因为接口的英语单词是 Interface;

2、由于接口中的成员签名必须在实现该接口的类中给出其具体实现,所以它们前面不用加访问级别修饰符(Public、Privated 等);

3、类通过 Implements 关键字实现接口;

4、一个类要实现一个接口,就必须实现该接口中定义的所有成员签名;

5、一个类可以实现多个接口,方法是在接口名用“,”隔开,如 Implements ISpeak,IRun。

以上是一个简单易懂的VB.NET接口范例,以及学习心得。

【编辑推荐】

  1. 深入浅出.NET接口:阿猫阿狗和程序员
  2. 浅谈C#接口方法
  3. 对ASP接口的理解:动物类的范例
  4. C#接口和抽象类的经典示例与比对
  5. 什么是.NET接口?什么是.NET抽象类?

本文标题:VB.NET接口范例ISpeak
网页地址:http://www.mswzjz.cn/qtweb/news24/428074.html

攀枝花网站建设、攀枝花网站运维推广公司-贝锐智能,是专注品牌与效果的网络营销公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 贝锐智能