上次我们简单介绍了下接口的运用初步,
未学习的小伙伴可以移步文章《visualbasic(vb.net)中如何使用接口,浅析vb.net中接口的意义》,
现在我们进一步学习vb.net接口的使用,
第1部分:使用“模块”module,在模块中创建接口
同时构造使用这个接口的两个类,
Public Module Module1 rem 创建接口 Public Interface MyInterface Property StuName() As String Function GetScores(ByVal x As Double) As Double End Interface rem 第一个使用接口的类 Public Class StuInfor Implements MyInterface Dim MyName As String Public Function GetScores(ByVal x As Double) As Double Implements MyInterface.GetScores GetScores = x * 0.2 End Function Public Property StuName() As String Implements MyInterface.StuName Get Return MyName End Get Set(ByVal value As String) MyName = value End Set End Property End Class rem 第二个使用接口的类 Public Class StuMessage Implements MyInterface Dim MyName As String Public Function GetScores(ByVal x As Double) As Double Implements MyInterface.GetScores GetScores = x * 0.8 End Function Public Property StuName() As String Implements MyInterface.StuName Get Return MyName End Get Set(ByVal value As String) MyName = value End Set End Property End Class End Module
这里有几个知识点,
1、模块中的方法都可以直接使用
2、模块中可以构建类
3、使用同一个接口的类,方法名可以相同,也可以不同
4、在输入Implements使用接口后,回车会自动构建类的框架
第2部分:在窗体代码中创建通用过程,同时调用这个通用过程,实现不同类的执行,进而实现多态
Public Class Form1 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim obj1 As New StuInfor Dim obj2 As New StuMessage ShowScore(obj1, "期中", 85) ShowScore(obj2, "期末", 90) End Sub rem 这是个通用过程,obj为对象-即我们要调用的类,s为名称,score为分数 rem 这个类是将某个学生的总分进行换算后的分数msgbox出来 Private Sub ShowScore(ByVal obj As MyInterface, ByVal s As String, ByVal Score As Double) Try MsgBox(s & "成绩为:" & obj.GetScores(Score).ToString("N2")) Catch ex As Exception MsgBox(ex.Message.ToString) End Try End Sub End Class
这里我们能够很清晰看到
1、调动模块里的类,没有经过实例化(这个我会在另一篇文章了详细介绍)
2、将类当做一个对象(变量)传入,增加了处理灵活性,是个很好的思路
第3部分:vb.net中接口运用方法总结
vb.net中的接口主要用于规范代码结构
内容只有方法参数,但不包含方法的处理代码
调用接口,不同类可以使用一样的方法名,为实现多态提供了一个条件
© 版权声明
THE END
暂无评论内容