C# เชิงวัตถุ

พหุสัณฐาน

เรียกการทำงานที่ต่างกันผ่านสัญญาร่วมหนึ่งเดียว

ทำงานอย่างไร

พหุสัณฐานช่วยให้โค้ดที่เรียกทำงานกับสิ่งที่เป็นนามธรรมแทนการแยกเงื่อนไขตามชนิดจริง

ออบเจกต์แต่ละตัวเลือก override ของตัวเองตอนรันไทม์ แม้ตัวแปรในลูปจะเป็นชนิดร่วม Shape

ตัวอย่าง C# ที่รันได้

C#
รันโค้ด →
Program.cs
using System;

abstract class Shape { public abstract double Area(); }
class Circle(double radius) : Shape { public override double Area() => Math.PI * radius * radius; }
class Square(double side) : Shape { public override double Area() => side * side; }

class Program
{
    static void Main()
    {
        Shape[] shapes = { new Circle(2), new Square(3) };
        foreach (Shape shape in shapes) Console.WriteLine($"{shape.Area():F2}");
    }
}
ผลลัพธ์ที่คาดหวัง
12.57
9.00

ฝึกกับดีบักเกอร์

ตั้ง breakpoint ที่การกำหนดค่าหรือเงื่อนไขสำคัญ กด Debug แล้วดูค่าตัวแปรภายในก่อนไปยังบรรทัดถัดไป

ฝึกด้วยโจทย์

ใช้สิ่งที่เรียนในบทนี้แก้ปัญหาจริง ทุกโจทย์รันในเบราว์เซอร์ พร้อมการทดสอบทันทีและรีวิวจาก AI

โจทย์ทั้งหมด