深入探讨visualbasic(vb.net)中接口的用法,公共方法调用不同的类

上次我们简单介绍了下接口的运用初步,

未学习的小伙伴可以移步文章《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
喜欢就支持一下吧
点赞8 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容