vb.net 实现多态
阅读原文时间:2023年07月10日阅读:4

1. 新建一个module,设置public 其他类才可以调用

Public Module Module2
Public Interface MyInterface
Property stuName As String
Function GetScore(ByVal x As Single) As Single
End Interface

Public Class StuInfo  
    Implements MyInterface  
    Private studentScore As Single  
    Private studentName As String  
    Public Property Score() As Single  
        Get  
            Return studentScore  
        End Get  
        Set(ByVal value As Single)  
            studentScore = value  
        End Set  
    End Property  
    Public Function GetScore(ByVal x As Single) As Single Implements MyInterface.GetScore  
        Return x \* 0.8  
    End Function

    Public Property StuName() As String Implements MyInterface.stuName  
        Get  
            Return studentName  
        End Get  
        Set(ByVal value As String)  
            studentName = value  
        End Set  
    End Property  
End Class

Public Class StuMessage  
    Implements MyInterface  
    Private studentName As String  
    Private stuScore As Single  
    Public Property Score() As Single  
        Get  
            Return stuScore  
        End Get  
        Set(ByVal value As Single)  
            stuScore = value  
        End Set  
    End Property  
    Public Function GetScore(ByVal x As Single) As Single Implements MyInterface.GetScore  
        Return x \* 0.8  
    End Function

    Public Property StuName() As String Implements MyInterface.stuName  
        Get  
            Return studentName  
        End Get  
        Set(ByVal value As String)  
            studentName = value  
        End Set  
    End Property

End Class

End Module

2. 测试页面:

Public Class TestClassForm
Public Sub ShowScore(ByVal obj As MyInterface, ByVal s As String, ByVal score As Single)
MsgBox(s & "成绩为:" & obj.GetScore(score) & "")
End Sub
Private Sub TestClassForm_Load(sender As Object, e As EventArgs) Handles MyBase.Load

End Sub

Private Sub Button1\_Click(sender As Object, e As EventArgs) Handles Button1.Click  
    Dim obj1 As New StuInfo()  
    Dim obj2 As New StuMessage()  
    ShowScore(obj1, "期中", )  
    ShowScore(obj2, "期末", )  
End Sub  

End Class