0Pricing
C# Academy · บทเรียน

การสืบทอด: นำโค้ดกลับมาใช้ใหม่

นำโค้ดเดิมกลับมาใช้ใหม่และต่อยอดด้วยการสืบทอดใน C#

การสืบทอด: นำโค้ดกลับมาใช้ใหม่ เป็นบทเรียน C# Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 6 จากทั้งหมด 7 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน C# Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส C# Academy มีบทเรียนทั้งหมด 7 บทเรียน

บทนำเกี่ยวกับการสืบทอด

การสืบทอด: การนำโค้ดกลับมาใช้ซ้ำ

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

การสืบทอด: นำโค้ดกลับมาใช้ใหม่ — ภาพประกอบ 1

การสืบทอดคืออะไร

การสืบทอดคืออะไร

การสืบทอดช่วยให้คลาสหนึ่ง (คลาสลูกหรือคลาสที่สืบทอด) ได้รับแอตทริบิวต์และเมธอดของอีกคลาสหนึ่ง (คลาสแม่หรือคลาสฐาน) ทำให้สามารถนำโค้ดกลับมาใช้ซ้ำและสร้างความสัมพันธ์แบบลำดับชั้นระหว่างคลาสได้

ตัวอย่าง: คลาส "Car" อาจทำหน้าที่เป็นคลาสฐานสำหรับคลาส "ElectricCar" และ "SportsCar" โดยใช้พร็อพเพอร์ตีทั่วไป เช่น "สี" และ "ความเร็ว" ร่วมกัน

การกำหนดคลาสฐาน

การกำหนดคลาสฐาน

คลาสฐานประกอบด้วยพร็อพเพอร์ตีและเมธอดทั่วไปที่คลาสที่สืบทอดสามารถสืบทอดได้ ตัวอย่าง:

ประเด็นสำคัญ: กำหนดโค้ดที่นำกลับมาใช้ซ้ำได้ไว้ในคลาสฐาน

using System;

class Vehicle {
    public string Color;

    public void Drive() {
        Console.WriteLine("The vehicle is driving.");
    }
}

การสร้างคลาสที่สืบทอด

การสร้างคลาสที่สืบทอด

คลาสที่สืบทอดจะสืบทอดพร็อพเพอร์ตีและเมธอดของคลาสฐาน ใช้สัญลักษณ์ : เพื่อระบุการสืบทอด ตัวอย่าง:

ประเด็นสำคัญ: คลาสที่สืบทอดสามารถเพิ่มความสามารถใหม่หรือเขียนทับการทำงานของคลาสฐานได้

using System;

class Vehicle {
    public string Color;

    public void Drive() {
        Console.WriteLine("The vehicle is driving.");
    }
}

class Car : Vehicle {
    public int NumberOfDoors;

    public void ShowDetails() {
        Console.WriteLine("Color: " + Color);
        Console.WriteLine("Doors: " + NumberOfDoors);
    }
}

class Program {
    static void Main() {
        Car myCar = new Car();
        myCar.Color = "Red"; // Inherited from Vehicle
        myCar.NumberOfDoors = 4;
        myCar.Drive(); // Inherited from Vehicle
        myCar.ShowDetails();
    }
}

การเขียนทับเมธอด

การเขียนทับเมธอด

คลาสที่สืบทอดสามารถเขียนทับเมธอดในคลาสฐานเพื่อกำหนดพฤติกรรมเฉพาะได้ ใช้คีย์เวิร์ด virtual ในคลาสฐาน และคีย์เวิร์ด override ในคลาสที่สืบทอด ตัวอย่าง:

เคล็ดลับ: การเขียนทับมีประโยชน์สำหรับปรับแต่งพฤติกรรมในคลาสที่สืบทอด

using System;

class Vehicle {
    public virtual void Drive() {
        Console.WriteLine("The vehicle is driving.");
    }
}

class SportsCar : Vehicle {
    public override void Drive() {
        Console.WriteLine("The sports car is driving fast!");
    }
}

class Program {
    static void Main() {
        SportsCar myCar = new SportsCar();
        myCar.Drive(); // Calls the overridden method
    }
}

คีย์เวิร์ดคลาสฐาน

คีย์เวิร์ดคลาสฐาน

คีย์เวิร์ด base ใช้สำหรับเข้าถึงสมาชิกของคลาสฐานจากภายในคลาสสืบทอด ตัวอย่าง:

เคล็ดลับ: ใช้ base เพื่อขยายหรือเสริมพฤติกรรมของคลาสฐาน

using System;

class Vehicle {
    public string Color;

    public virtual void Drive() {
        Console.WriteLine("The vehicle is driving.");
    }
}

class Truck : Vehicle {
    public override void Drive() {
        base.Drive(); // Calls the base class method
        Console.WriteLine("The truck is carrying a heavy load.");
    }
}

class Program {
    static void Main() {
        Truck myTruck = new Truck();
        myTruck.Color = "Blue";
        myTruck.Drive();
    }
}

โจทย์ฝึกปฏิบัติ

โจทย์ฝึกปฏิบัติ

สร้างคลาสฐานชื่อ Animal พร้อมเมธอด Speak() ที่พิมพ์ข้อความว่า “สัตว์ส่งเสียง” จากนั้นสร้างคลาสสืบทอด Dog และ Cat ซึ่งเขียนทับ Speak() ให้พิมพ์ข้อความว่า “สุนัขเห่า” และ “แมวร้องเหมียว” ตามลำดับ ตัวอย่าง:

using System;

class Animal {
    public virtual void Speak() {
        Console.WriteLine("The animal makes a sound.");
    }
}

class Dog : Animal {
    public override void Speak() {
        Console.WriteLine("The dog barks.");
    }
}

class Cat : Animal {
    public override void Speak() {
        Console.WriteLine("The cat meows.");
    }
}

class Program {
    static void Main() {
        Animal myDog = new Dog();
        Animal myCat = new Cat();

        myDog.Speak();
        myCat.Speak();
    }
}

แนวทางปฏิบัติที่ดีสำหรับการสืบทอด

แนวทางปฏิบัติที่ดีสำหรับการสืบทอด

แนวทางปฏิบัติที่ดีมีดังนี้:

  • ใช้การสืบทอดเฉพาะเมื่อมีความสัมพันธ์แบบ “เป็น” ที่ชัดเจน เช่น Car เป็น Vehicle
  • ทำให้คลาสฐานมีลักษณะทั่วไปมากที่สุดเท่าที่ทำได้
  • ใช้ sealed เพื่อป้องกันการสืบทอดต่อเมื่อจำเป็น

เคล็ดลับ: การสืบทอดควรช่วยให้ชุดโค้ดของคุณเรียบง่ายขึ้น ไม่ใช่ซับซ้อนขึ้น

ทำได้ยอดเยี่ยม

ทำได้ยอดเยี่ยม

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

การสืบทอด: นำโค้ดกลับมาใช้ใหม่ — ภาพประกอบ 10

คำถามที่พบบ่อย

บทเรียน “การสืบทอด: นำโค้ดกลับมาใช้ใหม่” ฟรีหรือไม่

ใช่ — ข้อความเต็มของ “การสืบทอด: นำโค้ดกลับมาใช้ใหม่” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส C# Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส C# Academy มีบทเรียนทั้งหมด 7 บทเรียน

คุณจะเรียนรู้อะไรในบทเรียน “การสืบทอด: นำโค้ดกลับมาใช้ใหม่”

นำโค้ดเดิมกลับมาใช้ใหม่และต่อยอดด้วยการสืบทอดใน C# คุณปฏิบัติ C# Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน

คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน C# Academy หรือไม่

ไม่จำเป็นต้องมีประสบการณ์มาก่อน C# Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 6 จากทั้งหมด 7 บทเรียน

บทเรียน “การสืบทอด: นำโค้ดกลับมาใช้ใหม่” ใช้เวลานานแค่ไหน

บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย

ฉันเขียนและรันโค้ดในบทเรียน C# Academy นี้ได้ไหม

ได้ บทเรียน C# Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. การเขียนโปรแกรมเชิงวัตถุคืออะไร
  2. การกำหนดคลาสและออบเจ็กต์
  3. ทำความเข้าใจคุณสมบัติและเมธอด
  4. คอนสตรักเตอร์ใน C#
  5. การห่อหุ้มและตัวปรับเปลี่ยนการเข้าถึง
  6. การสืบทอด: นำโค้ดกลับมาใช้ใหม่
  7. พหุสัณฐานและการเขียนทับเมธอด
← กลับไปที่ C# Academy