Question

    Which of the following scenarios illustrates runtime

    polymorphism?
    A A method with the same name but different parameters within the same class. Correct Answer Incorrect Answer
    B Overriding a base class method in the derived class and calling it through a base class reference. Correct Answer Incorrect Answer
    C Using default arguments in methods to achieve different outputs. Correct Answer Incorrect Answer
    D Defining a method as static for shared functionality across objects. Correct Answer Incorrect Answer
    E A constructor with a parameter list in the derived class. Correct Answer Incorrect Answer

    Solution

    Runtime polymorphism (or dynamic method dispatch) occurs when a method's implementation is determined at runtime. This is achieved using method overriding in OOP. A derived class overrides a method of the base class, and the method to execute is determined by the type of the object being referenced at runtime. Example: class Animal {     void sound() {         System.out.println("Animal makes a sound");     }} class Dog extends Animal {     void sound() {         System.out.println("Dog barks");     }} public class Main {     public static void main(String[] args) {         Animal animal = new Dog();  // Base class reference pointing to a derived class object         animal.sound();            // Outputs: Dog barks     }} Why Other Options Are Incorrect: 1. Method with the same name but different parameters within the same class: This is compile-time polymorphism (method overloading), not runtime polymorphism. 2. Default arguments in methods: Default arguments provide flexibility but are unrelated to polymorphism. They simplify method calls without changing the behavior based on the object’s runtime type. 3. Static methods for shared functionality: Static methods are class-level and cannot participate in runtime polymorphism, as they are resolved at compile time. 4. Constructor with a parameter list in the derived class: Constructors are not polymorphic as they do not inherit or override behavior in OOP.

    Practice Next