Skip to content
Sharp

Core Java · interview question

Given the following code, which method will be executed at runtime? class Product { void display() { System.out.println("Product"); } } class Book extends Product { void display() { System.out.println("Book"); } } public class Main { public static void main(String[] args) { Product p = new Book(); p.display(); } }?

Multiple choiceMediumchapter-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"); } }
public class Main { public static void main(String[] args) { Product p = new Book(); p.display(); } }
Choose one answer
Answer and explanation

Correct answer

D. "Book"

Why

The method executed is determined by the runtime type of the object. Since the object is instantiated as a Book, the Book's display method will be called, printing "Book".

Test yourself on Core Java

A free test with instant, explained results. No account needed.

Start free test
All Core Java questions →