ตามที่กล่าวไว้ในคำตอบอื่น ๆ ความสามารถในการเพิ่มการใช้งานกับอินเทอร์เฟซถูกเพิ่มเข้ามาเพื่อให้เข้ากันได้ย้อนหลังในกรอบการทำงานของคอลเลกชัน ฉันจะยืนยันว่าการให้ความเข้ากันได้แบบย้อนหลังนั้นอาจเป็นเหตุผลที่ดีเพียงข้อเดียวในการเพิ่มการติดตั้งไปยังส่วนต่อประสาน
มิฉะนั้นถ้าคุณเพิ่มการใช้งานอินเทอร์เฟซคุณกำลังฝ่าฝืนกฎหมายพื้นฐานว่าทำไมอินเทอร์เฟซที่ถูกเพิ่มเข้ามาตั้งแต่แรกJava เป็นภาษาที่สืบทอดเดี่ยวซึ่งแตกต่างจาก C ++ ซึ่งอนุญาตให้มีหลายมรดก อินเทอร์เฟซให้ประโยชน์ในการพิมพ์ที่มาพร้อมกับภาษาที่รองรับการสืบทอดหลายรายการโดยไม่แนะนำปัญหาที่มาพร้อมกับการสืบทอดหลายรายการ
โดยเฉพาะอย่างยิ่ง Java อนุญาตให้สืบทอดเพียงครั้งเดียวของการใช้งาน แต่จะอนุญาตให้มีหลายมรดกของอินเตอร์เฟซ ตัวอย่างเช่นต่อไปนี้เป็นรหัส Java ที่ถูกต้อง:
class MyObject extends String implements Runnable, Comparable { ... }
MyObject
สืบทอดการใช้งานเพียงครั้งเดียว แต่ได้รับการสืบทอดสามสัญญา
Java ส่งผ่านการสืบทอดหลายการใช้งานเนื่องจากการสืบทอดหลายการใช้งานมาพร้อมกับโฮสต์ของปัญหาที่มีหนามซึ่งอยู่นอกขอบเขตของคำตอบนี้ อินเทอร์เฟซถูกเพิ่มเข้ามาเพื่ออนุญาตการสืบทอดหลายสัญญา (อินเทอร์เฟซ aka) โดยไม่มีปัญหาของการสืบทอดหลายการใช้งาน
เพื่อสนับสนุนประเด็นของฉันนี่คือข้อความจาก Ken Arnold และ James Gosling จากหนังสือThe Java Programming Language, รุ่นที่ 4 :
การสืบทอดเดี่ยวทำให้การออกแบบมีประโยชน์และไม่ถูกต้อง ปัญหาของการสืบทอดหลายอย่างเกิดขึ้นจากการสืบทอดหลายอย่างของการใช้งาน แต่ในหลายกรณีการสืบทอดหลายครั้งถูกใช้เพื่อสืบทอดสัญญาที่เป็นนามธรรมจำนวนหนึ่งและบางทีการใช้งานที่เป็นรูปธรรม การจัดหาวิธีการที่จะสืบทอดสัญญาแบบนามธรรมโดยไม่ต้องสืบทอดการใช้งานจะทำให้เกิดประโยชน์ในการพิมพ์ของการสืบทอดหลาย ๆ แบบโดยไม่มีปัญหาของการสืบทอดหลายการใช้งาน มรดกของสัญญานามธรรมที่เรียกว่า
มรดกของอินเตอร์เฟซ ภาษาการเขียนโปรแกรม Java รองรับการสืบทอดอินเตอร์เฟสโดยอนุญาตให้คุณประกาศinterface
ชนิด