ในบทนี้คุณจะได้รู้จักกับคุณสมบัติ 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 เป็นต้น
ไม่มีความคิดเห็น:
แสดงความคิดเห็น