ในบทนี้คุณจะได้รู้จักกับคุณสมบัติ Polymorphism ในภาษา C#
ซึ่งมันเป็นคุณสมบัติที่สำคัญอย่างหนึ่งในการเขียนโปรแกรมเชิงวัตถุที่รองลง
มาจาก Inheritance และ Encapsulation
มาดูตัวอย่างสำหรับ Polymorphism ในภาษา C# ยกตัวอย่างเช่น เรามีคลาสของสัตว์ ซึ่งสัตว์แต่ละชนิดนั้นสามารถที่จะเคลื่อนที่ได้ แต่วิธีการเคลื่อนของมันแตกต่างกัน
ต่อไปมาดูตัวอย่างเพิ่มเกี่ยวกับการใช้ประโยชน์จาก Polymorphism
ใน บทนี้ คุณได้เรียนรู้และการใช้งานเกี่ยวกับ Polymorphism ในภาษา C# ซึ่งมันมีประโยชน์หลายอย่างและทำให้ง่ายขึ้น นอกจากนี้ ยังมี Polymorphism แบบอื่นอีก เช่น Method Overloading หรือ Operators Overloading เป็นต้น
Polymorphism คืออะไร
Polymorphism นั้นคือการมีได้หลายรูปแบบ โดยมันเป็นคำที่ถูกใช้ในการเขียนโปรแกรมเชิงวัตถุ ที่จะใช้ในการสร้างคลาสลูก (Derived class) โดยทำการ Override กับ Virtual เมธอดของคลาสหลัก (Base class) และเราสามารถสั่งการทำงานเมธอดในคลาสหลักและได้ผลลัพธ์การทำงานของคลาสลูก แทนมาดูตัวอย่างสำหรับ Polymorphism ในภาษา C# ยกตัวอย่างเช่น เรามีคลาสของสัตว์ ซึ่งสัตว์แต่ละชนิดนั้นสามารถที่จะเคลื่อนที่ได้ แต่วิธีการเคลื่อนของมันแตกต่างกัน
using System; namespace Polymorphism { class Animals { public string name; public int height; public int weight; public virtual void Move() { Console.WriteLine("Perform base class move"); } } class Dog : Animals { public override void Move() { Console.WriteLine("Running on the ground"); } } class Fish : Animals { public override void Move() { Console.WriteLine("Swimming in the water"); } } class Bird : Animals { public override void Move() { Console.WriteLine("Frying in the air"); } } class Program { static void Main(string[] args) { Animals dog = new Dog(); Animals fish = new Fish(); Animals bird = new Bird(); dog.Move(); fish.Move(); bird.Move(); Console.ReadKey(); } } }ใน ตัวอย่างนั้น เป็นตัวอย่างหนึ่งของ Polymorphism นั่นคือสร้างตัวแปรคลาสโดยการใช้ Base class ของมัน สำหรับ Constructor นั้นจะเป็นของ Delivered class เอง เช่นในคำสั่ง
Animals dog = new Dog()
ซึ่งถ้าเป็นในคุณสมบัติของการสืบทอดนั้นจะเป็น Dog dog = new Dog()
ซึ่งตรงนี้เองทำให้มันแตกต่างไป ซึ่งจะทำให้มันสามารถนำไปใช้ง่าย เช่น
เก็บในข้อมูลชนิดเดียวกัน เช่น เก็บในอาเรย์ Generic หรือส่งไปยังเมธอดต่อไปมาดูตัวอย่างเพิ่มเกี่ยวกับการใช้ประโยชน์จาก Polymorphism
using System; using System.Collections.Generic; namespace Polymorphism { class Animals { public string name; public int height; public int weight; public virtual void Move() { Console.WriteLine("Perform base class move"); } } class Dog : Animals { public override void Move() { Console.WriteLine("Running on the ground"); } } class Fish : Animals { public override void Move() { Console.WriteLine("Swimming in the water"); } } class Bird : Animals { public override void Move() { Console.WriteLine("Frying in the air"); } } class Program { static void Main(string[] args) { // arrays Animals[] arr = new Animals[3]; arr[0] = new Dog(); arr[1] = new Fish(); arr[2] = new Bird(); Console.WriteLine("C# Arrays:"); foreach (Animals a in arr) { AnimalMove(a); } // Generic List<Animals> gener = new List<Animals>(); gener.Add(new Dog()); gener.Add(new Fish()); gener.Add(new Bird()); Console.WriteLine("\nC# Generic:"); foreach (Animals a in gener) { AnimalMove(a); } Console.ReadKey(); } public static void AnimalMove (Animals a) { a.Move(); } } }ใน ตัวอย่าง เป็นการให้เห็นว่าเราสามารถเก็บข้อมูลได้แบบไดนามิกส์ โดยไม่ต้องสนใจว่าจะสร้างมาจากคลาสไหน โดยเราได้ใช้คลาสแม่ในการประกาศตัวแปร และในการใช้งานฟังก์ชันนั้น เราสามารถส่งตัวแปรจากคลาสใดๆ ที่สืบทอดมาจากคลาส
Animal
ได้C# Arrays: Running on the ground Swimming in the water Frying in the air C# Generic: Running on the ground Swimming in the water Frying in the airและนี่เป็นผลลัพธ์ของตัวอย่างที่สอง
ใน บทนี้ คุณได้เรียนรู้และการใช้งานเกี่ยวกับ Polymorphism ในภาษา C# ซึ่งมันมีประโยชน์หลายอย่างและทำให้ง่ายขึ้น นอกจากนี้ ยังมี Polymorphism แบบอื่นอีก เช่น Method Overloading หรือ Operators Overloading เป็นต้น
ไม่มีความคิดเห็น:
แสดงความคิดเห็น