PDA

View Full Version : پلی مورفیسم در vb.net



marzban
دوشنبه 22 مرداد 1386, 18:08 عصر
با سلام
درمورد اصول پلی مورفیسم پرسیده بودم که آقای راد لطف کردند و به بخش C#.net مطلب ارسالی را منتقل کردند .چیزایی در مورد اصول پلی مورفیسم هرچند ناچیز فهمیدم.
اگر کسی لطف کند و در Vb.net اصول پلی مورفیسم را با مثال توضیح دهد خیلی ممنون می شوم.
با تشکر مرزبان

yaserzare
دوشنبه 22 مرداد 1386, 18:20 عصر
لطفا بیشتر توضیح دهید

PC2st
دوشنبه 22 مرداد 1386, 23:13 عصر
استفاده از یک عضو کلاس، صرف نظر از روش پیاده سازی آن!... یک تعریف نه چندان دقیق از پلی مرفیسم (چند ریختی) بود!

مثلا کلاسهای زیر رو در نظر بگیرید:


Class Day
Public Overridable Function GetName() As String
Return "Today is a Day!"
End Function
End Class

Class Sunday : Inherits Day
Public Overrides Function GetName() As String
Return "Today is Sunday"
End Function
End Class

Class Monday : Inherits Day
Public Overrides Function GetName() As String
Return "Today is Monday"
End Function
End Class

همه کلاسهای فوق، صرف نظر از روش پیاده سازی آنها، دارای متد GetName هستند که خروجی همه آنها یک رشته متنی است که نوع روز را مشخص میکند.

marzban
سه شنبه 23 مرداد 1386, 19:25 عصر
با تشکر از راهنمایی شما
خوب حالا چطور از این کلاسها استفاده می کنیم.
لطفا در نحوه استفاده از کلاسها هم توضیح دهید.
با تشکر مرزبان

PC2st
سه شنبه 23 مرداد 1386, 20:50 عصر
برای استفاده از کلاسها:



Public Class Form1
Class Day
Public Overridable Function GetName() As String
Return "Today is a Day!"
End Function
End Class

Class Sunday : Inherits Day
Public Overrides Function GetName() As String
Return "Today is Sunday"
End Function
End Class

Class Monday : Inherits Day
Public Overrides Function GetName() As String
Return "Today is Monday"
End Function
End Class

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim myDay As Day = New Day()
Dim mySunday As Sunday = New Sunday()
Dim myMonday As Monday = New Monday()
Me.SayHello(myDay)
Me.SayHello(mySunday)
Me.SayHello(myMonday)
End Sub

Public Sub SayHello(ByVal yourDay As Day)
MessageBox.Show(yourDay.GetName())
End Sub
End Class


در کد فوق، متد SayHello یک بار پیاده سازی شده است و همانطور که میبینید، صرف نظر از نوع پیاده سازی متد GetName از اشیاء myDay, mySunday و myMonday استفاده میکند.