VB.NET接口范例ISpeak
摘要: 我有一个朋友,他学习 VB.NET 时间还不是很长。这几天,他对面向对象编程中的接口突然产生了很大的兴趣。为了帮助他让他能够对接口有一个初步的、正确的认识,我写了下面的例子。同时,希望本例对目前还不是很了解接 ...
我有一个朋友,他学习 VB.NET 时间还不是很长。这几天,他对面向对象编程中的接口突然产生了很大的兴趣。为了帮助他让他能够对接口有一个初步的、正确的认识,我写了下面的例子。同时,希望本例对目前还不是很了解接口的朋友有所帮助。
VB.NET接口范例
在这个例子中,我定义了一个名为 ISpeak 的接口,它其中包括了三个签名(请参见下面程序)。由于接口是代表一种约定或者说是一种规则,它并不包含这种约定或者规则的具体实现。所以,我们只需要在接口中定义签名即可。在该接口中,包括了三个成员签名,它们分别代表了属性、方法以及函数。
接下来,我又定义了三个类,分别是 Baby、Children 和 Adlut ,这个三类都实现了上述接口。并且,在每个类实现接口的成员时,都给出了具体的实现。
来看代码:
@H_301_32@'定义一个接口
- PublicInterfaceISpeak
@H_301_32@'仅定义签名,不包含任何实现- ReadOnlyPropertyCanSpeak()AsBoolean'属性
@H_301_32@SubSpeak()'方法- FunctionGetSpeakLevel()AsSpeakLevelEnum'函数
@H_301_32@EndInterface- @H_301_32@'说话水平枚举
- PublicEnumSpeakLevelEnum
@H_301_32@Bad'很差- Ordinary‘一般
@H_301_32@Fluent'流利- EndEnum
@H_301_32@- PublicClassBaby:ImplementsISpeak'通过Implements关键字实现接口
@H_301_32@'以下是实现该接口的所有成员- PublicReadOnlyPropertyCanSpeak()AsBooleanImplementsISpeak.CanSpeak
@H_301_32@Get- ReturnFalse
@H_301_32@EndGet- EndProperty
@H_301_32@- PublicFunctionGetSpeakLevel()AsSpeakLevelEnumImplementsISpeak.GetSpeakLevel
@H_301_32@ReturnSpeakLevelEnum.Bad- EndFunction
@H_301_32@- PublicSubSpeak()ImplementsISpeak.Speak
@H_301_32@Console.WriteLine("(旁白):他是一个婴儿,还不会说话。")- EndSub
@H_301_32@EndClass- @H_301_32@PublicClassChildren:ImplementsISpeak
- PublicReadOnlyPropertyCanSpeak()AsBooleanImplementsISpeak.CanSpeak
@H_301_32@Get- ReturnTrue
@H_301_32@EndGet- EndProperty
@H_301_32@- PublicFunctionGetSpeakLevel()AsSpeakLevelEnumImplementsISpeak.GetSpeakLevel
@H_301_32@ReturnSpeakLevelEnum.Ordinary- EndFunction
@H_301_32@- PublicSubSpeak()ImplementsISpeak.Speak
@H_301_32@Console.WriteLine("哈哈,我是一个快乐的孩子!")- EndSub
@H_301_32@EndClass- @H_301_32@PublicClassAdult:ImplementsISpeak
- @H_301_32@PublicReadOnlyPropertyCanSpeak()AsBooleanImplementsISpeak.CanSpeak
- Get
@H_301_32@ReturnTrue- EndGet
@H_301_32@EndProperty- @H_301_32@PublicFunctionGetSpeakLevel()AsSpeakLevelEnumImplementsISpeak.GetSpeakLevel
- ReturnSpeakLevelEnum.Fluent
@H_301_32@EndFunction- @H_301_32@PublicSubSpeak()ImplementsISpeak.Speak
- Console.WriteLine("OK,我是成年人了,不但能流利地说母语,还会说外语。")
@H_301_32@EndSub- EndClass
@H_301_32@- @H_301_32@'程序入口点
- PublicClassAppStart
@H_301_32@SharedSubMain()- Dimperson1AsNewBaby
@H_301_32@Dimperson2AsNewChildren- Dimperson3AsNewAdult
@H_301_32@- person1.Speak()
@H_301_32@person2.Speak()- person3.Speak()
@H_301_32@- Ifperson2.GetSpeakLevel>SpeakLevelEnum.BadThen
@H_301_32@Console.WriteLine("Person2的说话水平不算很差")- EndIf
@H_301_32@- Ifperson1.CanSpeakThen
@H_301_32@Console.WriteLine("Person1会说话")- Else
@H_301_32@Console.WriteLine("Person1不会说话")- EndIf
@H_301_32@- Console.Read()
@H_301_32@EndSub- EndClass
@H_301_32@
在 VS2005/2008 中建立一个“控制台项目”项目,将默认的 Module1.vb 删除,在该项目中添加一个类,将上述代码复制到这个类中覆盖原有内容,即可运行调试。
VB.NET接口范例学习经验
关于接口,学习总结如下:
1、定义接口名,应按照惯例,将接口名的第一个字母命名为 I,如上例中的 ISpeak,这样做的目的是见名知义,原因是因为接口的英语单词是 Interface;
2、由于接口中的成员签名必须在实现该接口的类中给出其具体实现,所以它们前面不用加访问级别修饰符(Public、Privated 等);
3、类通过 Implements 关键字实现接口;
4、一个类要实现一个接口,就必须实现该接口中定义的所有成员签名;
5、一个类可以实现多个接口,方法是在接口名用“,”隔开,如 Implements ISpeak,IRun。
以上是一个简单易懂的VB.NET接口范例,以及学习心得。