Swift Academy · บทเรียน

การสืบทอด การเขียนทับ และ final

สร้างคลาสฐาน ขยายคลาสด้วยการสืบทอด override เมธอด/พร็อพเพอร์ตี เรียกใช้ super และล็อกพฤติกรรมด้วย final

บทเรียน 2 จาก 38 ขั้นตอน

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

ภาพรวม

Swift รองรับ คลาสที่สืบทอดได้ คุณสามารถ override ลักษณะการทำงานและเรียกใช้ super ได้ ใช้ final เพื่อล็อกไม่ให้แก้ไขต่อ

คลาสพื้นฐาน

สร้าง คลาสพื้นฐานที่มีเมธอดของอินสแตนซ์ ซึ่งคลาสลูกสามารถ override ได้

class Animal {
    var name: String
    init(name: String) { self.name = name }
    func speak() -> String { "..." }     // to be overridden
}
let a = Animal(name: "Thing")
print(a.speak())

เมธอดที่ override

ใช้คีย์เวิร์ด override เมื่อต้องการระบุการใช้งานแบบใหม่ในคลาสลูก

class Dog: Animal {
    override func speak() -> String { "woof" }
}
let d = Dog(name: "Rex")
print(d.speak())  // "woof"

การเรียกใช้ super

เรียกใช้ super เพื่อใช้ลักษณะการทำงานของคลาสพื้นฐานซ้ำ แล้วต่อยอดในคลาสลูก

class Cat: Animal {
    override func speak() -> String {
        let base = super.speak()
        return base + " meow"
    }
}
print(Cat(name: "Mimi").speak())  // "... meow"

Override และ final

คุณสามารถ override พร็อพเพอร์ตีและ เมธอดได้ ใช้ final กับคลาสหรือสมาชิกเพื่อหยุดการสืบทอดหรือการ override ต่อไป

class Vehicle {
    var description: String { "vehicle" }        // computed property
    func drive() { print("move") }
}
class Car: Vehicle {
    override var description: String { "car" }   // override property
    override func drive() { print("vroom") }
}
final class ElectricCar: Car {                   // cannot be subclassed
    final override func drive() { print("zzzz") } // cannot be overridden further
}
let e = ElectricCar()
print(e.description)
e.drive()

หมายเหตุและเคล็ดลับ

หมายเหตุ:

  • เลือกใช้การประกอบแทนลำดับชั้นการสืบทอดที่ลึก
  • กำหนดคลาสหรือสมาชิกเป็น final เว้นแต่ตั้งใจให้คลาสลูกสืบทอดต่อ
  • ใช้ override เสมอเมื่อแทนที่ลักษณะการทำงานของคลาสพื้นฐาน

คีย์เวิร์ด final

ตรวจสอบอย่างรวดเร็ว: คีย์เวิร์ดใดป้องกันการสืบทอดคลาสหรือการ override

ทบทวน

ทบทวน: กำหนดคลาสพื้นฐาน, override เมธอดหรือพร็อพเพอร์ตีในคลาสลูก, เรียกใช้ super เพื่อใช้การทำงานเดิมซ้ำ และกำหนดชนิดหรือสมาชิกเป็น final เพื่อล็อกลักษณะการทำงาน

เริ่มต้นได้ฟรี

เรียนรู้ Swift ด้วย AI tutor — ฟรี

เขียนและเรียกใช้โค้ดจริงในเบราว์เซอร์ของคุณ รับความช่วยเหลือทันทีจาก AI tutor 24/7 และเรียนรู้ต่อจากที่คุณหยุดบนเว็บหรือในแอป

คอร์ส
122
บทเรียน
409

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

บทเรียน “การสืบทอด การเขียนทับ และ final” ฟรีหรือไม่

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

คุณจะเรียนรู้อะไรในบทเรียน “การสืบทอด การเขียนทับ และ final”

สร้างคลาสฐาน ขยายคลาสด้วยการสืบทอด override เมธอด/พร็อพเพอร์ตี เรียกใช้ super และล็อกพฤติกรรมด้วย final คุณปฏิบัติ Swift Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน

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

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

บทเรียน “การสืบทอด การเขียนทับ และ final” ใช้เวลานานแค่ไหน

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

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

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

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

  1. ตัวเริ่มต้นแบบสมาชิกและเมธอด mutating
  2. การสืบทอด การเขียนทับ และ final
  3. การควบคุมการเข้าถึง (public/internal/fileprivate/private)
← กลับไปที่ Swift Academy