Core Java · interview question
Given the following code, why does it fail to compile? interface A { default void foo() { } } interface B { default void foo() { } } class C implements A, B { }?
Multiple choiceHardchapter-5-curatedpremiumcore-javadefault-methods-and-multiple-inheritance
interface A { default void foo() { } }
interface B { default void foo() { } }
class C implements A, B { }Answer and explanation
Correct answer
B. Class C does not override the conflicting method
Why
Class C does not compile because it must explicitly override the conflicting default methods from interfaces A and B. The Java compiler requires resolution of such conflicts to maintain clear behavior.
Test yourself on Core Java
A free test with instant, explained results. No account needed.
More Core Java questions
- In a console shopping cart application, why might you separate input handling from calculations?
- What happens if a subclass does not implement an abstract method from its superclass?
- Why would you choose to use a switch statement instead of multiple if-else statements for handling order status?
- Which part of the following code is responsible for avoiding an off-by-one error?
- Why can using overly complex methods in an e-commerce application become a problem in production code?
- How can a class implementing an interface with a default method call that method from within an overridden method?