|
bsp; d = 1 End If CompareWithInteger = d End Function Public Function CompareWithRectangle(ByVal r As Rectangle) As Integer Dim d As Integer d = Area() - r.Area() If d <> 0 Then d = 1 End If CompareWithRectangle = d End Function Public Function CompareTwoRectangle( ByVal x As Rectangle, ByVal y As Rectangle) As Integer Dim d As Integer d = x.Area() - y.Area() If d <> 0 Then d = 1 End If CompareTwoRectangle = d End Function 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 r1 As New Rectangle(10, 50) Dim r2 As New Rectangle(20, 25) If r1.CompareWithInteger(400) = 0 Then MessageBox.Show("ggg EQUAL") Else MessageBox.Show("NOT EQUAL") End If If r1.CompareWithRectangle(r2) = 0 Then MessageBox.Show("EQUAL") Else MessageBox.Show("NOT EQUAL") End If If r1.CompareTwoRectangle(r1, r2) = 0 Then MessageBox.Show("EQUAL") Else MessageBox.Show("NOT EQUAL") End If End Sub End Class
此程序输出﹕ NOT EQUAL EQUAL EQUAL
由于各程序名称不相同,您就得记忆各程序之名字﹐徒增记忆负担而且易于犯错﹐并不合乎人们生活习惯。因之﹐VB的多重定义观念﹐能增加程序之弹性及亲切感。 程序多重定义情形并不限于单一类别之内,也可以发生于父子类别之间。例如:
''''ex06.bas Imports System.ComponentModel Imports System.Drawing Imports System.WinForms ''''------------------------------------------------------------------------------------------ Public Class Person Private name As String Private age As Integer Public Sub New() End Sub Public Sub SetValue(ByVal na As String, ByVal a As Integer) name = na age = a End Sub Public Function birthDay() As Integer birthDay = 2001 - age End Function Public 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 Sub pr() 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 Sub pr() 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.pr() End Sub End Class
Teacher类别从Person继承了SetValue() ── SetValue(ByVal na As String, ByVal a As Integer)
自己又重复定义一个新的SetValue()程序── SetValue(ByVal na As String, ByVal a As Integer, ByVal no As Integer)
共有两个SetValue()可用。指令x.SetValue("Alvin", 32)呼叫第1个SetValue();指令y.SetValue("Tom", 36, 11138)呼叫第1个SetValue()。 兹在扩充一个子类别如下: ''''ex07.bas Imports System.ComponentModel Imports System.Drawing Imports System.WinForms ''''------------------------------------------------------------------------------------------ Public Class Person Private name As String Private age As Integer Public Sub New() End Sub Public Sub SetValue(ByVal na As String, ByVal a As Integer) name = na age = a End Sub Public Function birthDay() As Integer birthDay = 2001 - age
上一页 [1] [2] [3] [4] 下一页 没有相关教程
|