Skip to main content

การสืบทอดอินเทอร์เฟซคืออะไร?

การสืบทอดอินเทอร์เฟซเป็นกลไกในภาษาคอมพิวเตอร์บางภาษาที่มีฟังก์ชั่นเฉพาะที่สืบทอดมาจากคลาสและจากนั้นคลาสนั้นจะต้องจัดให้มีการใช้งานสำหรับฟังก์ชั่นเหล่านั้นเพื่อให้เสร็จสมบูรณ์อินเทอร์เฟซมีอยู่เฉพาะในภาษาการเขียนโปรแกรมเชิงวัตถุบางอย่างพวกเขาสามารถใช้เพื่อเลียนแบบการสืบทอดหลายครั้งในขณะที่ไม่อนุญาตให้คลาสมีการสืบทอดทวีคูณเพราะโดยทั่วไปไม่มีข้อ จำกัด ของจำนวนอินเทอร์เฟซที่คลาสสามารถสืบทอดได้นอกเหนือจากวิธีการที่ไม่ได้ใช้งานแล้วอินเทอร์เฟซยังสามารถรวมค่าคงที่สาธารณะ

ในการสืบทอดอินเทอร์เฟซวัตถุที่สืบทอดวิธีการและค่าคงที่ของวิธีการถือเป็นประเภทของวัตถุอินเตอร์เฟสดังนั้นหากคลาส X ที่สืบทอดมาจากอินเทอร์เฟซ y อินสแตนซ์ใด ๆ ของคลาส X ก็จะเป็นอินสแตนซ์ของคลาส Y สิ่งนี้จะซับซ้อนมากขึ้นเมื่อการสืบทอดอินเตอร์เฟสคลาสเกี่ยวข้องกับอินเทอร์เฟซแยกกันมากกว่าหนึ่งอินเตอร์เฟสสำหรับอินเทอร์เฟซเพิ่มเติมทุกอย่างที่สืบทอดมานั้นคลาสผลลัพธ์สามารถใช้เป็นอินสแตนซ์ของแต่ละรายการได้อย่างถูกกฎหมายหากคลาสที่สืบทอดมาจากสิบอินเตอร์เฟสที่แตกต่างกันวัตถุของคลาสนั้นสามารถใช้เป็นอินสแตนซ์ของวัตถุที่แตกต่างกันสิบเอ็ดรวมถึงตัวมันเอง

การสืบทอดที่ซับซ้อนดังกล่าวไม่จำเป็นการสืบทอดอินเตอร์เฟสใช้เพื่อให้แน่ใจว่าชั้นเรียนมีชุดพฤติกรรมที่ต้องการเฉพาะและพฤติกรรมเหล่านี้ช่วยให้สามารถทำหน้าที่ได้หลากหลายฟังก์ชั่นที่ไม่สามารถทำได้ตัวอย่างทั่วไปของสิ่งนี้คืออินเทอร์เฟซ ActionListener ใน Java ซึ่งต้องใช้คลาสเพื่อใช้วิธีเดียวเท่านั้นการใช้งานวิธีนี้ประสบความสำเร็จช่วยให้ผู้ใช้สามารถควบคุมปุ่มรายการเมนูหรือวัตถุหน้าต่างอื่น ๆ ในชั้นเรียนหากต้องการการสืบทอดอินเตอร์เฟสเป็นวิธีที่ค่อนข้างง่ายในการเพิ่มฟังก์ชั่นที่ซับซ้อนให้กับคลาสโดยไม่ต้องกังวลเกี่ยวกับปัญหาการสืบทอดที่ซับซ้อนที่สุด

หนึ่งในข้อได้เปรียบที่ใหญ่ที่สุดในการใช้การสืบทอดอินเตอร์เฟสคือช่วยให้วัตถุเฉพาะสามารถใช้ในความหมายทั่วไปเนื่องจากคลาสที่ใช้อินเทอร์เฟซเป็นอินสแตนซ์ของอินเทอร์เฟซนั้นจึงสามารถใช้สถานที่ใด ๆ ที่ต้องใช้อินสแตนซ์ของอินเทอร์เฟซนั้นตัวอย่างเช่นหากคลาส A ใช้คลาส C และคลาส B ยังใช้คลาส C หากวิธีการใช้เป็นพารามิเตอร์อินสแตนซ์ของคลาส C ไม่ว่าจะเป็นอินสแตนซ์ของคลาส A หรืออินสแตนซ์ของคลาส B จะเป็นพารามิเตอร์ที่ยอมรับได้.อินเทอร์เฟซไม่สามารถสร้างอินสแตนซ์ด้วยตัวเองได้เพราะยังไม่สมบูรณ์ดังนั้นจะไม่มีวัตถุที่เป็นอินสแตนซ์ของคลาส C ล้วนๆเป็นพารามิเตอร์