Trong nỗ lực hiểu đầy đủ cách giải quyết nhiều vấn đề thừa kế của Java, tôi có một câu hỏi kinh điển mà tôi cần làm rõ.
Cho phép nói rằng tôi có lớp học Animal
này có các lớp phụ Bird
và Horse
và tôi cần phải thực hiện một lớp học Pegasus
kéo dài từ Bird
và Horse
kể từ khi Pegasus
là cả một con chim và một con ngựa.
Tôi nghĩ rằng đây là vấn đề kim cương cổ điển. Từ những gì tôi có thể hiểu được cách cổ điển để giải quyết việc này là làm cho Animal
, Bird
và Horse
các lớp giao diện và thực hiện Pegasus
từ họ.
Tôi đã tự hỏi nếu có một cách khác để giải quyết vấn đề mà tôi vẫn có thể tạo ra các vật thể cho chim và ngựa. Nếu có một cách để có thể tạo ra động vật cũng sẽ rất tuyệt nhưng không cần thiết.
public class Pegasus extends Horse implements Flying
.