मेथड ओवरराइडिंग रनटाइम पॉलीमॉर्फिज्म का एक उदाहरण है। मेथड ओवरराइडिंग में, एक सबक्लास अपने सुपरक्लास में मौजूद मेथड के समान सिग्नेचर वाले मेथड को ओवरराइड करता है। कंपाइल टाइम पर, चेक रेफरेंस टाइप पर किया जाता है। हालांकि, रनटाइम में, JVM ऑब्जेक्ट टाइप का पता लगाता है और उस विशेष ऑब्जेक्ट से संबंधित मेथड को चलाएगा।
हम मल्टीलेवल इनहेरिटेंस के किसी भी स्तर पर एक मेथड को ओवरराइड कर सकते हैं। अवधारणा को समझने के लिए नीचे दिए गए उदाहरण देखें −
उदाहरण
class Animal {
public void move() {
System.out.println("Animals can move");
}
}
class Dog extends Animal {
public void move() {
System.out.println("Dogs can walk and run");
}
}
class Puppy extends Dog {
public void move() {
System.out.println("Puppy can move.");
}
}
public class Tester {
public static void main(String args[]) {
Animal a = new Animal(); // Animal रेफरेंस और ऑब्जेक्ट
Animal b = new Puppy(); // Animal रेफरेंस लेकिन Puppy ऑब्जेक्ट
a.move(); // Animal क्लास में मेथड चलाता है
b.move(); // Puppy क्लास में मेथड चलाता है
}
}आउटपुट
Animals can move Puppy can move.