Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Java

ทำไม Java จึงไม่รองรับการสืบทอดหลายคลาส

ใน Java คลาสไม่สามารถขยายมากกว่าหนึ่งคลาสได้ ดังนั้นต่อไปนี้เป็นสิ่งที่ผิดกฎ:

ตัวอย่าง

public class extends Animal, Mammal{}

อย่างไรก็ตาม คลาสสามารถนำอินเทอร์เฟซหนึ่งหรือมากกว่าไปใช้งานได้ ซึ่งช่วยให้ Java หลุดพ้นจากความเป็นไปไม่ได้ของการสืบทอดหลายคลาส

เหตุผลด้านหลังคือเพื่อป้องกันความคลุมเครือ

พิจารณากรณีที่คลาส B ขยายคลาส A และคลาส C และทั้งคลาส A และ C มีเมธอด display() เดียวกัน

ตอนนี้ Java compiler ไม่สามารถตัดสินใจได้ว่า ควรสืบทอดเมธอด display ไหน เพื่อป้องกันสถานการณ์เช่นนี้ การสืบทอดหลายคลาสจึงไม่ได้รับอนุญาตใน Java