การสืบทอด การเขียนทับ และ final
สร้างคลาสฐาน ขยายคลาสด้วยการสืบทอด override เมธอด/พร็อพเพอร์ตี เรียกใช้ super และล็อกพฤติกรรมด้วย final
การสืบทอด การเขียนทับ และ 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 ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- ตัวเริ่มต้นแบบสมาชิกและเมธอด mutating
- การสืบทอด การเขียนทับ และ final
- การควบคุมการเข้าถึง (public/internal/fileprivate/private)