7. Polymorphism คลาสพันหน้า

posted on 18 Aug 2009 19:31 by inet03  in Vb-Wpf-Lerning

Polymorphism คืออะไร ?
แปลกันแบบกำปันทุบดินคือ หลายรูปลักษณ์
แต่ถ้าให้เข้าใจง่ายๆคือ การใช้ร่วมกันได้

ลักษณะของ Polymorphism ที่เห็นได้ในชีวิตประจำวัน
เห็นกันชัดๆก็คือ ปลักไฟ ไม่ว่าจะเครื่องใช้ไฟฟ้าอะไรพอเราเสียบเข้าไปมันก็จ่ายไฟ
ทีนี้มาดูตัวอย่างแบบเป็นเรื่องเป็นราวกัน

Dim อ.เอก As New ครู
Dim น็อต As New นักเรียน

ห้องเรียน.Add(อ.เอก)
ห้องเรียน.Add(น็อต)

ForEach คนในห้อง As คน In ห้องเรียน
 Msg.Show(คนในห้อง.ชื่อ)
Next

สังเกตว่า "คน" ไม่ใช่ทั้ง "ครู" และ "นักเรียน"
แต่ว่าก็สามารถใช้ร่วมกับทั้งสองได้
แน่นอนว่า เรารู้อยู่แล้วว่าทั้งครูและนักเรียน ก็เป็นคนนี่
แต่ในเชิงการเขียนโปรแกรมแล้ว เจ้าตัวโปรแกรมมันไม่ได้ฉลาดอย่างเรานะสิ

ลองนึกภาพเรามี Textbox , Label , ComboBox หลายๆตัวทำงานพร้อมกันหมด
แล้่วต้องการเปลี่ยนสีพื้นหลังด้วยกันสิครับ หึหึ งานเข้าเลยเลย
แต่ด้วยการใช้ Polymorphism ทำให้เขียนแค่ ForEach ตัวเดียวจบ

ForEach MyItem As Control In Window.Controls
 MyItem.Background = Color.Black
Next

จบครับ แค่ 3 บรรทัด ต่อให้มีกี่ร้อยตัว มีกี่สิบชนิดก็เรียบร้อยใน 3 บรรทัด O_o!

แต่ว่าการเขียน Polymorphism นั้นใช่ว่าจะหมูนะครับ
คนเขียนจะต้องอัพสกิลทางผ่านให้ครบซะก่อน ซึ่งก็คือ
1. Inherit
2. Interface
3. Generic
4. Delegate
5. Abstract

อันนี้เสริม ซึ่งควรจะอัพสกิลพวกนี้มาด้วย
1. Property
2. Shadow (โกงมากครับ คำสั่งนี้)
3. Override
4. Function (Lv : Master)
5. Class (Lv : Master)

 

Comment



smilebig smileopen-mounthed smileconfused smilesad smileangry smiletonguequestionembarrassedsurprised smilewinkdouble winkcry

Tweet