Tại sao Đa kế thừa được hỗ trợ trong C ++ nhưng không được hỗ trợ trong Java?
Tại sao Đa kế thừa được hỗ trợ trong C ++ nhưng không được hỗ trợ trong Java?

Video: Tại sao Đa kế thừa được hỗ trợ trong C ++ nhưng không được hỗ trợ trong Java?

Video: Tại sao Đa kế thừa được hỗ trợ trong C ++ nhưng không được hỗ trợ trong Java?
Video: Java 41. Vì sao không có đa kế thừa trong Java? | Phần 2 - Lập trình Hướng Đối Tượng 2024, Tháng tư
Anonim

C ++ , Nói ngọng thông thường và một số ngôn ngữ khác hỗ trợ đa kế thừa trong khi java không ủng hộ nó. Java không cho phép đa kế thừa để tránh sự mơ hồ do nó gây ra. Một trong những ví dụ của vấn đề như vậy là vấn đề kim cương xảy ra trong đa kế thừa.

Theo đó, tại sao Đa kế thừa không được hỗ trợ trong Java?

Java ủng hộ đa kế thừa chỉ thông qua các giao diện. Một lớp có thể triển khai bất kỳ số lượng giao diện nào nhưng chỉ có thể mở rộng một lớp. Nhiều thừa kế Là không phải được hỗ trợ bởi vì nó dẫn đến vấn đề kim cương chết người. Bạn không đạt được bất kỳ chức năng nào từ giao diện.

Ngoài ra, vấn đề Diamond trong đa thừa kế là gì? Các vấn đề kim cương ”Là một sự mơ hồ có thể nảy sinh do hệ quả của việc cho phép đa kế thừa . Nó là một nghiêm trọng vấn đề cho các ngôn ngữ (như C ++) cho phép đa kế thừa của tiểu bang. Trong Java, tuy nhiên, đa kế thừa không được phép đối với các lớp, chỉ đối với các giao diện và những giao diện này không chứa trạng thái.

Tương tự như vậy, mọi người hỏi, tại sao C ++ hỗ trợ đa kế thừa nhưng C # thì không?

Nhiều thừa kế trong C # C # không hỗ trợ đa kế thừa , bởi vì họ lý luận rằng việc thêm đa kế thừa đã thêm quá nhiều phức tạp vào NS# trong khi cung cấp quá ít lợi ích. Trong NS# , các lớp học chỉ được phép thừa kế từ một lớp cha duy nhất, được gọi là một lớp di sản.

C ++ hỗ trợ đa kế thừa như thế nào?

Không giống như nhiều ngôn ngữ lập trình hướng đối tượng khác, C ++ cho phép đa kế thừa . Nhiều thừa kế cho phép một lớp trẻ thừa kế từ nhiều hơn một lớp cha. Các lớp Động vật và Bò sát thừa kế từ nó. Chỉ lớp Animal ghi đè phương thức Breat ().