Core Java · interview question
What will be the output of the following code involving polymorphism?
Multiple choiceHardchapter-5-curatedpremiumcore-javaupcasting-and-dynamic-dispatch
class Product { void display() { System.out.println("Product"); } }
class Book extends Product { void display() { System.out.println("Book"); } }
class EBook extends Book { void display() { System.out.println("EBook"); } }
public class Main { public static void main(String[] args) { Product p = new EBook(); p.display(); ((Book) p).display(); } }Answer and explanation
Correct answer
A. EBook EBook
Why
The variable is of type Product but holds an instance of EBook. Due to dynamic method dispatch, the overridden display method in EBook is called both times.
Test yourself on Core Java
A free test with instant, explained results. No account needed.
More Core Java questions
- What happens if a class implements two interfaces that have methods with the same signature?
- Given the code snippet below, what will be the result of the comparison using '=='?
- Which of the following variable names is best for storing the total amount in a shopping cart?
- When does a local variable declared inside a method stop existing?
- Which of the following is a checked exception?
- Why might you choose 'int' over 'long' for storing the number of items in a small store's inventory?