Object-oriented programming · interview question
Which greeting is printed when dynamic dispatch calls Derived.sayHello()?
Multiple choiceMediumchapter-5-curatedpremiumoopmethod-overriding
class Base {
void sayHello() { System.out.println("Hello from Base"); }
}
class Derived extends Base {
@Override
void sayHello() { System.out.println("Hello from Derived"); }
}
public class Test {
public static void main(String[] args) {
Base obj = new Derived();
obj.sayHello();
}
}Answer and explanation
Correct answer
D. Hello from Derived
Why
At runtime, the method call resolves to the method in the actual object type, not the reference type. Hence, 'Hello from Derived' is printed.
Test yourself on Object-oriented programming
A free test with instant, explained results. No account needed.
More Object-oriented programming questions
- In a typical e-commerce application, how should a CartItem object access the price of a Product?
- What design principle is violated if a Cart class directly manipulates a Product's price?
- Why might CartItem hold a Product reference instead of copying every product field into loose variables?
- In the context of e-commerce, which class is most likely to contain a method called calculateTotalPrice()?
- What access modifier should be used for fields to adhere to encapsulation principles?
- How would you explain a key reason to use encapsulation when designing an object with multiple responsibilities in an…