Skip to content
Sharp

Core Java · interview question

What will be the output of the following code involving polymorphism?

Multiple choiceHardchapter-5-curatedpremiumcore-javaupcasting-and-dynamic-dispatch
java
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(); } }
Choose one answer
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.

Start free test
All Core Java questions →