พหุสัณฐาน
เรียกการทำงานที่ต่างกันผ่านสัญญาร่วมหนึ่งเดียว
ทำงานอย่างไร
พหุสัณฐานช่วยให้โค้ดที่เรียกทำงานกับสิ่งที่เป็นนามธรรมแทนการแยกเงื่อนไขตามชนิดจริง
ออบเจกต์แต่ละตัวเลือก override ของตัวเองตอนรันไทม์ แม้ตัวแปรในลูปจะเป็นชนิดร่วม Shape
ตัวอย่าง 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
- ค่าใช้จ่ายการแจ้งเตือน ส่งข้อความผ่านอีเมล SMS และ push โดยแต่ละช่องทางคำนวณค่าใช้จ่ายของตัวเอง ง่าย