C# เชิงวัตถุ

การสืบทอด

ใช้พฤติกรรมซ้ำและปรับให้เฉพาะเจาะจงผ่านคลาสฐาน

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

การสืบทอดจำลองความสัมพันธ์แบบ is-a และควรใช้เมื่อออบเจกต์คลาสลูกเป็นไปตามสัญญาของคลาสฐานจริง ๆ

constructor ของคลาสฐานกำหนดสถานะร่วม คลาสลูก override เมธอด virtual เพื่อปรับพฤติกรรมให้เฉพาะเจาะจง

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

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

class Employee(string name)
{
    public string Name { get; } = name;
    public virtual string Describe() => Name;
}

class Developer(string name, string language) : Employee(name)
{
    public override string Describe() => $"{Name} writes {language}";
}

class Program
{
    static void Main() => Console.WriteLine(new Developer("Ada", "C#").Describe());
}
ผลลัพธ์ที่คาดหวัง
Ada writes C#

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

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

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

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

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