VB.NET接口范例ISpeak

开发 后端
本文提供的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抽象类?
责任编辑:yangsai 来源: 网络转载
相关推荐

2010-01-08 10:37:50

VB.NET数据库

2010-01-18 14:47:42

VB.NET获取环境变

2009-10-27 12:06:01

VB.NET IDis

2009-11-02 15:45:03

VB.NET IEnu

2010-01-13 15:01:13

VB.NET操作MyS

2009-10-29 16:23:42

VB.NET实现IEn

2010-01-14 09:55:06

VB.NET IEnu

2009-10-29 14:02:24

VB和VB.NET比较

2011-06-17 11:05:22

VB.NET

2009-06-24 15:45:32

VB.NET

2009-10-20 14:21:55

VB.NET fnSi

2009-10-14 12:51:41

VB.NET Data

2010-01-15 11:31:02

VB.NET接口实现多

2009-10-27 15:07:40

VB.NET支付宝接口

2010-01-07 10:28:04

VB.NET实现接口

2009-11-02 17:12:01

VB和VB.NET

2009-10-19 14:22:13

VB.NET EIF体

2009-10-28 17:44:31

VB.NET语言

2009-10-14 17:08:44

VB.NET使用Fil

2009-11-03 09:26:13

VB.NET方法
点赞
收藏

51CTO技术栈公众号