extends และการเขียนทับเมธอด
ใช้พฤติกรรมของคลาสแม่ร่วมกันและปรับเฉพาะทาง
extends และการเขียนทับเมธอด เป็นบทเรียน Dart Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 1 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Dart Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Dart Academy มีบทเรียนทั้งหมด 4 บทเรียน
การใช้พฤติกรรมร่วมกัน
เมื่อคลาสสองคลาสมีพฤติกรรมส่วนใหญ่ร่วมกัน คุณสามารถเขียนเพียงครั้งเดียวแล้วนำกลับมาใช้ใหม่ได้ Dart เรียกแนวคิดนี้ว่าการสืบทอด ซึ่งช่วยให้ไม่ต้องคัดลอกและวางโค้ดซ้ำ 🌱
คีย์เวิร์ด extends
คุณสืบทอดได้โดยเขียน extends หลังชื่อคลาส คลาสใหม่จะเป็นคลาสลูกที่ได้รับฟิลด์และเมธอดของคลาสแม่โดยอัตโนมัติ
class Animal {}
class Dog extends Animal {}คลาสแม่และคลาสลูก
คลาสที่คุณสืบทอดเรียกว่าคลาสเหนือกว่าหรือคลาสแม่ ส่วนคลาสใหม่เรียกว่าคลาสย่อยหรือคลาสลูก Dog เป็น Animal แต่ไม่ใช่ Animal ทุกตัวจะเป็น Dog
สมาชิกที่สืบทอดมา
คลาสลูกสามารถใช้เมธอดสาธารณะของคลาสแม่ได้ทันทีราวกับเป็นเมธอดของตนเอง คุณเขียนพฤติกรรมที่สืบทอดมาเพียงครั้งเดียว แล้วคลาสย่อยทุกคลาสก็ได้รับประโยชน์
class Animal {
void breathe() => print('breathing');
}
class Dog extends Animal {}
// Dog().breathe() worksการเขียนทับเมธอด
คลาสย่อยยังสามารถเพิ่มเมธอดของตนเองต่อจากสิ่งที่สืบทอดมาได้ คลาสลูกยังคงเป็น Animal แต่มีความสามารถเพิ่มเติมที่คลาสแม่ไม่มี
class Dog extends Animal {
void bark() => print('Woof!');
}การเขียนทับเมธอด
บางครั้งเวอร์ชันของคลาสแม่อาจไม่เหมาะกับคลาสลูก การเขียนทับช่วยให้คลาสย่อยแทนที่ method ที่สืบทอดมาด้วยการทำงานของตนเองได้
class Animal {
void speak() => print('...');
}
class Cat extends Animal {
void speak() => print('Meow');
}ตัวระบุ @override
เพิ่ม annotation @override ไว้เหนือ method ที่ถูกแทนที่ annotation นี้บอกตัววิเคราะห์ให้ตรวจสอบว่าคลาสแม่มี method นั้นอยู่จริง จึงช่วยจับการพิมพ์ผิดได้ตั้งแต่เนิ่น ๆ
class Cat extends Animal {
@override
void speak() => print('Meow');
}ต้องใช้ลายเซ็นเดียวกัน
การเขียนทับต้องคงชื่อเดิมและมี ลายเซ็นที่เข้ากันได้ หากเปลี่ยนพารามิเตอร์หรือชนิดค่าที่ส่งคืนโดยไม่ระวัง Dart จะปฏิเสธ
นำเวอร์ชันของคลาสแม่กลับมาใช้
ภายใน method ที่เขียนทับ คุณยังเรียกใช้เวอร์ชันเดิมผ่าน super ได้ แล้วเพิ่มขั้นตอนของตนเองไว้โดยรอบ วิธีนี้เป็นการต่อยอดพฤติกรรมแทนการทิ้งของเดิมไปทั้งหมด
@override
void speak() {
super.speak();
print('and purrs');
}พหุสัณฐานในการทำงาน
เก็บคลาสลูกไว้ในตัวแปรชนิด Animal แล้วเรียกใช้ speak: แต่ละคลาสจะทำงานด้วยเวอร์ชันของตนเอง นี่คือ พหุสัณฐาน ซึ่งเป็นประโยชน์สำคัญของการเขียนทับ
Animal a = Cat();
a.speak(); // Meowการสืบทอดเดี่ยว
คลาส Dart สามารถขยายคลาสแม่ได้เพียง หนึ่งคลาสเท่านั้น ไม่ใช่สองคลาส หากต้องการแบ่งปันความสามารถระหว่างลำดับชั้นที่ไม่เกี่ยวข้องกัน ภายหลังคุณจะใช้มิกซินแทน
ตรวจสอบอย่างรวดเร็ว
คุณแทนที่ method ที่สืบทอดมาในคลาสย่อย แล้ว method นั้นทำอะไร
สรุปทบทวน
คุณใช้ extends เพื่อสืบทอดสมาชิกของคลาสแม่ เพิ่ม method ใหม่ และเขียนทับ method อื่นด้วย @override นี่คือหัวใจของการนำคลาสกลับมาใช้ซ้ำ 🎉
เรียนรู้ Dart ด้วย AI tutor — ฟรี
เขียนและเรียกใช้โค้ดจริงในเบราว์เซอร์ของคุณ รับความช่วยเหลือทันทีจาก AI tutor 24/7 และเรียนรู้ต่อจากที่คุณหยุดบนเว็บหรือในแอป
- คอร์ส
- 30
- บทเรียน
- 120
คำถามที่พบบ่อย
บทเรียน “extends และการเขียนทับเมธอด” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “extends และการเขียนทับเมธอด” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Dart Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Dart Academy มีบทเรียนทั้งหมด 4 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “extends และการเขียนทับเมธอด”
ใช้พฤติกรรมของคลาสแม่ร่วมกันและปรับเฉพาะทาง คุณปฏิบัติ Dart Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Dart Academy หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน Dart Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 1 จากทั้งหมด 4 บทเรียน
บทเรียน “extends และการเขียนทับเมธอด” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน Dart Academy นี้ได้ไหม
ได้ บทเรียน Dart Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- extends และการเขียนทับเมธอด
- การเรียก super และการเชื่อมคอนสตรักเตอร์
- มิกซ์อินด้วยคีย์เวิร์ด with
- ข้อจำกัด on และลำดับมิกซ์อิน