Diamond problem: class kế thừa từ hai parent có cùng ancestor — không rõ phải gọi method của ai.
Java giải quyết:
- không cho multiple inheritance của class (chỉ một
extends). - Interface cho phép implement nhiều (resolve bằng explicit method override)
Với Java 8 default methods: nếu cả hai interface B và C implement cùng method, subclass phải override tường minh.
Thiết kế này loại bỏ ambiguity và ngăn lỗi resolution method lúc runtime.