Core Java · interview question
Given the following code, why does it compile successfully? interface A { default void foo() {} } class B implements A { void foo() { System.out.println('Hello'); } }?
Multiple choiceHardchapter-5-curatedpremiumcore-javadefault-methods-and-multiple-inheritance
interface A { default void foo() {} } class B implements A { void foo() { System.out.println('Hello'); } }Answer and explanation
Correct answer
D. The class B overrides the default method successfully.
Why
Class B provides its own implementation of foo(), overriding the default method from interface A. This is valid because default methods can be overridden like any other method.
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?