打印本文 打印本文 关闭窗口 关闭窗口
VB.Net中文教程(5)程序多重定义
作者:武汉SEO闵涛  文章来源:敏韬网  点击数3637  更新时间:2009/4/23 19:01:09  文章录入:mintao  责任编辑:mintao
>    End Function
    Public Overridable Sub Display()
        Messagebox.Show("Name: " + name + "   Age: " + str(age))
    End Sub
End Class

Public Class Teacher
    Inherits Person
   
    Private salary As Decimal
    Public Overloads Sub SetValue( ByVal na As String, ByVal a As Integer, ByVal
                               sa As Decimal)
        SetValue(na, a)
        salary = sa
    End Sub
    Public Overrides Sub Display()
        MyBase.Display()
        Messagebox.Show("Salary: " + str(salary))
    End Sub
End Class

Public Class Student
    Inherits Person
   
    Private student_number As Integer
    Public Overloads Sub SetValue( ByVal na As String, ByVal a As Integer, ByVal
                               no As Integer)
        SetValue(na, a)
        student_number = no
    End Sub
    Public Overrides Sub Display()
        MyBase.Display()
        Messagebox.Show("StudNo: " + str(student_number))
    End Sub
End Class
''''-----------------------------------------------------------------------------------------
Public Class Form1
    Inherits System.WinForms.Form
   
    Public Sub New()
        MyBase.New()
        Form1 = Me
        ''''This call is required by the Win Form Designer.
        InitializeComponent()
        ''''TODO: Add any initialization after the InitializeComponent() call
    End Sub
    ''''Form overrides dispose to clean up the component list.
    Public Overrides Sub Dispose()
        MyBase.Dispose()
        components.Dispose()
    End Sub
#Region " Windows Form Designer generated code "
     ........
#End Region
    Protected Sub Form1_Click( ByVal sender As Object, ByVal
                            e As System.EventArgs)
        Dim x As New Person()
        x.SetValue("Alvin", 32)
        Dim y As New Student()
        y.SetValue("Tom", 36, 11138)
        x.Display()
        y.Display()
    End Sub
End Class

此程序输出﹕
             Name: Alvin    Age: 32
             Name: Tom      Age: 36
             StudNo: 11138

    此时﹐Student 类别含有两个SetValue()程序,一个是从Person类别继承而来,另一个是自行定义的。如果上述Form1_Click()内的指令更改如下:


        Dim y As New Student()
        y.SetValue("Tom", 36, 5000.25)   ''''Error!
        y.Display()

虽然SetValue("Tom", 36, 5000.25)合乎Teacher的SetValue()程序的参数,但是Student并非Person的子类别,没有继承Student的SetValue(),所以错了。n


 

上一页  [1] [2] [3] [4] 

打印本文 打印本文 关闭窗口 关闭窗口