DEV Community

Er. Bhupendra
Er. Bhupendra

Posted on

UNIVERSAL METHOD OVERRIDING TEMPLATE

⭐ UNIVERSAL METHOD OVERRIDING TEMPLATE

Start every answer like this in interview:

Method overriding works on runtime polymorphism where a child class
provides its own implementation of a parent class method.

For overriding to happen, some rules must be followed such as
method visibility, inheritance, and method signature compatibility.

Based on this rule, the answer is:
Enter fullscreen mode Exit fullscreen mode

Then give Yes / No + Reason.


🔥 MASTER OVERRIDING RULES (Remember this)

1. Method must be inherited
2. Cannot reduce visibility
3. Static methods cannot override
4. Final methods cannot override
5. Private methods cannot override
6. Return type must be same or covariant
Enter fullscreen mode Exit fullscreen mode

If you know these 6 rules, all questions are solved.


APPLY TEMPLATE TO YOUR QUESTIONS

1️⃣ Can we override private method?

Answer

Method overriding works when a child class inherits a method from a parent class.
Private methods are not visible to child classes, so they cannot be inherited.
Therefore private methods cannot be overridden.


2️⃣ Can we override static method?

Answer

Method overriding works with instance methods and runtime polymorphism.
Static methods belong to the class, not objects.
Therefore static methods cannot be overridden, they are method hidden.


3️⃣ Can we override final method?

Answer

The final keyword prevents modification of a method.
Therefore a method declared as final cannot be overridden in a subclass.


4️⃣ Can we change overridden method to private if it is public in parent?

Answer

In method overriding we cannot reduce method visibility.
Since public has higher visibility than private, changing it would reduce access.
Therefore it is not allowed.


5️⃣ Can we change return type of overridden method?

Answer

Yes, but only if it follows covariant return type.
This means the child method can return a subclass of the parent return type.

Example

class Animal {}
class Dog extends Animal {}

class Parent {
 Animal getAnimal() { return new Animal(); }
}

class Child extends Parent {
 Dog getAnimal() { return new Dog(); }
}
Enter fullscreen mode Exit fullscreen mode

🧠 SUPER SHORT MEMORY TRICK

Remember word:

PSFVR

P → Private ❌
S → Static ❌
F → Final ❌
V → Visibility cannot decrease ❌
R → Return type can be covariant ✔
Enter fullscreen mode Exit fullscreen mode

🎤 ONE-LINE INTERVIEW ANSWER

If interviewer asks about overriding rules say:

Method overriding allows a child class to provide its own implementation of a parent method, but private, static, and final methods cannot be overridden, visibility cannot be reduced, and return type must be same or covariant.


Top comments (0)