0Pricing
Dart Academy · บทเรียน

อินเทอร์เฟซโดยนัยและ 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 ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

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

  1. คลาสนามธรรมและเมธอดนามธรรม
  2. อินเทอร์เฟซโดยนัยและ implements
  3. พหุรูปผ่านชนิดข้อมูลร่วมกัน
  4. องค์ประกอบแทนการสืบทอด
← กลับไปที่ Dart Academy