If tutorials available on this website are helpful for you, please whitelist this website in your ad blocker😭 or Donate to help us ❤️ pay for the web hosting to keep the website running.
parent class में पहले से defined method को child class में define करना ही method overriding कहलाता है।
हम जानते हैं , कि Inheritance से हम किसी class को inherit करके उसकी properties और method को access या use में ले सकते हैं। लेकिन अगर कोई method पहले से base class में present है फिर भी इसकी derived / child class में वो method define कर सकते हैं।
Method overriding का use , parent class में defined किसी method का child class में proper implementation provide कराने के लिए किया जाता है।
Method overriding का use करके ही run time polymorphism को achieve किया जाता है। हालाँकि इसके बारे में आप आगे पढ़ेंगे।
File : Dog.java
class Animal{
void eat() {
System.out.println("An animal is eating...");
}
}
// main class.
public class Dog extends Animal {
// provide proper implementation for eat() method.
void eat() {
System.out.println("The dog is eating...");
}
public static void main(String args[]){
Dog d = new Dog();
d.eat();
}
}
javac Dog.java
java Dog
The dog is eating...
example में , same method को एक new implementation provide किया गया है जो कि parent class में defined method से completely different है।
जैसा कि आप पहले भी पढ़ चुके हैं कि , किसी class को inherit करने पर उस class के private members को छोड़कर बाकी सभी child class में accessible होते हैं। जिसमे static method को directly कर non static method को this का use करके access कर सकते हैं।
लेकिन method overriding के case में अगर आप this करके method access करोगे तो वहां child class का method call होगा , तो parent class के method override method को access करने के लिए आपको super ही use करना पड़ेगा।
See Example -
File : Dog.java
class Animal{
void eat() {
System.out.println("An animal is eating...");
}
}
// main class.
public class Dog extends Animal {
void eat() {
System.out.println("The dog is eating...");
}
// define non static method so that we can use this and super.
void print_action() {
this.eat(); // it'll call current class's method.
super.eat(); // it'll call parent class's method.
}
public static void main(String args[]){
Dog d = new Dog();
d.print_action();
}
}
javac Dog.java
java Dog
The dog is eating...
An animal is eating...