อินเทอร์เฟซโดยนัยและ implements
มองคลาสใด ๆ เป็นอินเทอร์เฟซ
อินเทอร์เฟซโดยนัยและ implements เป็นบทเรียน Dart Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 2 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Dart Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Dart Academy มีบทเรียนทั้งหมด 4 บทเรียน
ทุกคลาสคือส่วนติดต่อ
ใน Dart คลาสแต่ละคลาสจะกำหนด ส่วนติดต่อโดยปริยายอย่างเงียบ ๆ ซึ่งประกอบด้วย method และ getter สาธารณะทั้งหมดที่ผู้อื่นสามารถรับรองว่าจะจัดเตรียมให้
implements ต่างจาก extends
เมื่อใช้ extends คุณจะสืบทอดโค้ด แต่เมื่อใช้ implements คุณจะรับเพียงโครงสร้าง และต้องเขียนสมาชิกทุกตัวขึ้นใหม่ด้วยตนเอง
class Robot implements Greeter {}แหล่งที่มาของส่วนติดต่ออย่างง่าย
คลาสทั่วไปใด ๆ ก็สามารถทำหน้าที่เป็นส่วนติดต่อได้ ในที่นี้ Greeter กำหนด method หนึ่งตัวที่คลาสอื่นสามารถนำไปใช้ได้
class Greeter {
String greet() => 'Hi';
}นำส่วนติดต่อไปใช้
เมื่อคุณ implements คลาสหนึ่ง โค้ดของคลาสนั้นจะไม่ถูกสืบทอดมาเลย คุณต้องจัดทำส่วนเนื้อหาใหม่ให้กับสมาชิกทุกตัวที่คลาสนั้นประกาศไว้
class Robot implements Greeter {
String greet() => 'Beep';
}คุณต้องจัดเตรียมทุกอย่าง
การข้ามสมาชิกแม้เพียงตัวเดียวก็เป็นข้อผิดพลาดขณะคอมไพล์ implementsกำหนดให้มีส่วนติดต่อครบถ้วน โดยไม่มีทางลัดจากการสืบทอด
class Robot implements Greeter {} // error: greet missingนำหลายส่วนติดต่อไปใช้
คลาสหนึ่งสามารถ implements หลายส่วนติดต่อพร้อมกันได้ โดยคั่นรายการด้วยเครื่องหมายจุลภาค ทำให้ได้รับโครงสร้างทั้งหมดร่วมกัน
class Robot implements Greeter, Logger {}คลาสนามธรรมในฐานะส่วนติดต่อ
คลาส abstract ล้วนเหมาะสำหรับทำเป็นส่วนติดต่อ คลาสเหล่านี้ประกาศเฉพาะลายเซ็น ดังนั้นคลาสที่นำไปใช้จึงไม่ต้องรับโค้ดที่สืบทอดมาเลย
abstract class Greeter {
String greet();
}ส่วนติดต่อร่วมกับการสืบทอด
คุณสามารถใช้ทั้งสองแบบร่วมกันได้ โดย extends คลาสหนึ่งเพื่อรับโค้ด และ implements คลาสอื่นเพื่อรับโครงสร้างภายในคำประกาศเดียวกัน
class Robot extends Machine implements Greeter {}กำหนดชนิดโดยอ้างอิงส่วนติดต่อ
เมื่อคลาสหนึ่ง implements Greeter แล้ว คุณสามารถเก็บคลาสนั้นไว้ในตัวแปรชนิด Greeter และเรียกใช้ greet ได้โดยไม่ต้องรู้ชนิดจริงของคลาส
Greeter g = Robot();
print(g.greet());ส่วนติดต่อยังคงแยกออกจากกัน
เนื่องจาก implements ไม่คัดลอกพฤติกรรม คลาสของคุณจึงยังเป็นอิสระจากคลาสต้นทาง คุณสามารถเปลี่ยนคลาสต้นทางได้โดยไม่รับข้อผิดพลาดของคลาสนั้นมาด้วย
ฟิลด์กลายเป็น Getter
ฟิลด์ในส่วนติดต่อจะปรากฏเป็นข้อกำหนดของ getter คุณทำตามข้อกำหนดได้ด้วยฟิลด์จริงหรือ getter ที่คำนวณค่า
class Robot implements Named {
final String name = 'R2';
}ตรวจสอบอย่างรวดเร็ว
คำถามสั้น ๆ เกี่ยวกับการนำส่วนติดต่อไปใช้
สรุปทบทวน
ทุกคลาสเปิดเผยส่วนติดต่อโดยปริยาย ใช้ implements เพื่อรับโครงสร้างนั้น แล้วเขียนสมาชิกทุกตัวขึ้นใหม่ และยังผสานหลายส่วนติดต่อพร้อมกันได้ด้วย 🔌
คำถามที่พบบ่อย
บทเรียน “อินเทอร์เฟซโดยนัยและ implements” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “อินเทอร์เฟซโดยนัยและ implements” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Dart Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Dart Academy มีบทเรียนทั้งหมด 4 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “อินเทอร์เฟซโดยนัยและ implements”
มองคลาสใด ๆ เป็นอินเทอร์เฟซ คุณปฏิบัติ Dart Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Dart Academy หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน Dart Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 2 จากทั้งหมด 4 บทเรียน
บทเรียน “อินเทอร์เฟซโดยนัยและ implements” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน Dart Academy นี้ได้ไหม
ได้ บทเรียน Dart Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- คลาสนามธรรมและเมธอดนามธรรม
- อินเทอร์เฟซโดยนัยและ implements
- พหุรูปผ่านชนิดข้อมูลร่วมกัน
- องค์ประกอบแทนการสืบทอด