关于mybase的用法??

重做放牛娃 2006-10-21 03:17:10
那位仁兄可以详细的解释下mybase的用法呢!对于他的用法我始终不太清楚!比如说:
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 Overridable Sub Display()
Messagebox.Show("Name: " + name + " Age: " + str(age))
End Sub
End Class

Public Class Teacher
Inherits Person

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) ‘为什么这里可以不用mybase
student_number = no
End Sub
Public Overrides Sub Display()
MyBase.Display() '而这里一定要用mybase
Messagebox.Show("StudNo: " + str(student_number))
End Sub
End Class

谢了!!!!!
...全文
804 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
youzelin 2006-10-24
  • 打赏
  • 举报
回复
Let's create an example:

Sub main()
Dim s1 As Student = New Student
' OK, use the function inherited from base
' but the student_number is the default value: zero
s1.SetValue("Beckham", 20)
s1.Display()
' OK, use the overloaded function
s1.SetValue("Beckham", 30, 7)
s1.Display()

Dim p1 As Person = New Student
' OK, his own function
p1.SetValue("ZhuGuangHu", 50)
' Attension! p1 is the entity of Student,
' so it will use the Student's overrided function
p1.Display()
' Error, p1 is typeof Person, it doesn't have number
p1.SetValue("ZhuGuangHu", 40, 10)
End Sub
重做放牛娃 2006-10-24
  • 打赏
  • 举报
回复
谢谢楼上两位仁兄!
xingyaohua 2006-10-21
  • 打赏
  • 举报
回复
MyBase 关键字的行为类似于引用类的当前实例的基类的对象变量。MyBase 常用于访问在派生类中被重写或隐藏的基类成员。具体而言,MyBase.New 用于从派生类构造函数中显式调用基类构造函数。
MyBase.Display()
用于访问基类中的Display() 方法而不是你这个类重写的方法
Public Overridable Sub Display()
Messagebox.Show("Name: " + name + " Age: " + str(age))
End Sub
stone_soup 2006-10-21
  • 打赏
  • 举报
回复
MyBase:基类的对象
MyBase常用来存取以派生类别中被重写的基类成员.
-------------------
SetValue(na, a) ‘为什么这里可以不用mybase
-->基类的SetValue為Public被繼承下來了.

MyBase.Display() '而这里一定要用mybase
-->注意:Public Overrides Sub Display()
這條語句重寫了基類的Display
所以.調用前加mybase

16,553

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧