We all know about the diamond problem regarding multiple inheritance -
A
/ \\
B C
\\ /
D
This problem describe an ambiguous
Java overcomes this problem even though interfaces can have default implementations of methods, because the default implementation is either unambiguous (the one in class A) or the situation is solved by some rule (when class B or class C overrides the implementation from class A, see below).
When the supertypes of a class or interface provide multiple default methods with the same signature:
However, if two or more independently defined default methods conflict, or a default method conflicts with an abstract method, then the Java compiler produces a compiler error. You must explicitly override the supertype methods. In this case you could invoke any of the of the default implementations with the super keyword.
See also: How does Java 8' new default interface model works (incl. diamond, multiple inheritance, and precedence)?