BCA / B.Tech 10 min read

Method Overriding in Hindi

Method Overriding in Java in Hindi | जावा में मेथड ओवरराइडिंग :


मेथड ओवरराइडिंग जावा में पॉलिमॉरफिज़्म (Polymorphism) का एक महत्वपूर्ण हिस्सा है। यह एक ऐसी प्रक्रिया है जहां एक सब-क्लास (उपवर्ग) अपने पैरेंट क्लास (मूल वर्ग) के मेथड को फिर से परिभाषित करती है। जब हम किसी पैरेंट क्लास के मेथड को सब-क्लास में उसी सिग्नेचर के साथ परिभाषित करते हैं, तो उसे ओवरराइडिंग कहा जाता है। यह रनटाइम पॉलिमॉरफिज़्म का एक उदाहरण है, क्योंकि यह मेथड का चयन रनटाइम पर होता है।

मेथड ओवरराइडिंग जावा में एक महत्वपूर्ण कॉन्सेप्ट है, जो ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग के मूल सिद्धांतों में से एक है। यह रनटाइम पॉलिमॉरफिज़्म को लागू करने का सबसे अच्छा तरीका है, जिससे सब-क्लास पैरेंट क्लास के मेथड को अपने अनुसार परिभाषित कर सकती है। मेथड ओवरराइडिंग का सही उपयोग कोड को अधिक लचीला, पुन: प्रयोग योग्य और प्रबंधनीय बनाता है।


What is Method Overriding | मेथड ओवरराइडिंग क्या है? 

जब एक सब-क्लास अपने पैरेंट क्लास के मेथड को उसी सिग्नेचर (नाम, पैरामीटर की संख्या और प्रकार) के साथ फिर से परिभाषित करती है, तो इसे मेथड ओवरराइडिंग कहते हैं। इसका मुख्य उद्देश्य सब-क्लास में पैरेंट क्लास के मेथड के व्यवहार को बदलना होता है।

Rules for Method Overriding in java in Hindi | मेथड ओवरराइडिंग के नियम :

  • सिग्नेचर का समान होना: ओवरराइड किया जाने वाला मेथड और उसके पैरेंट क्लास में परिभाषित मेथड का नाम, पैरामीटर्स की संख्या और प्रकार बिल्कुल समान होना चाहिए।
  • रिटर्न टाइप (Return Type): ओवरराइडिंग मेथड का रिटर्न टाइप वही होना चाहिए जो पैरेंट क्लास के मेथड का हो, या इसका कोई सबटाइप (covariant return type) हो सकता है।
  • एक्सेस मोडिफायर (Access Modifier): ओवरराइडिंग मेथड का एक्सेस लेवल पैरेंट क्लास के मेथड से अधिक या समान होना चाहिए। उदाहरण के लिए, यदि पैरेंट क्लास का मेथड protected है, तो सब-क्लास का ओवरराइड किया हुआ मेथड protected या public होना चाहिए, लेकिन इसे private नहीं किया जा सकता।
  • final और static मेथड्स ओवरराइड नहीं किए जा सकते: final और static मेथड्स को ओवरराइड नहीं किया जा सकता। final मेथड्स को बदलने की अनुमति नहीं होती, जबकि static मेथड्स का ओवरराइडिंग संभव नहीं होता क्योंकि वे क्लास के साथ जुड़े होते हैं, न कि ऑब्जेक्ट के साथ।
  • कंस्ट्रक्टर (Constructors) ओवरराइड नहीं किए जा सकते: कंस्ट्रक्टर कभी भी ओवरराइड नहीं किए जा सकते।
  • अपवाद (Exceptions): ओवरराइडिंग मेथड को वही या कम गंभीर (broader exceptions) अपवाद फेंकने की अनुमति है जो पैरेंट क्लास के मेथड में डिक्लेयर किए गए हों। यदि पैरेंट क्लास का मेथड कोई चेक किए गए अपवाद नहीं फेंकता, तो ओवरराइडिंग मेथड को भी ऐसा ही करना होगा।

Example of Method Overriding in java in Hindi | मेथड ओवरराइडिंग का उदाहरण  :

नीचे दिए गए उदाहरण में, हम देखेंगे कि कैसे एक सब-क्लास अपने पैरेंट क्लास के मेथड को ओवरराइड कर सकती है:

// Parent Class
class Animal {
    // Method in the parent class
    void sound() {
        System.out.println("Animal makes a sound");
    }
}

// Child Class
class Dog extends Animal {
    // Overriding the sound() method in the child class
    @Override
    void sound() {
        System.out.println("Dog barks");
    }
}

public class Main {
    public static void main(String[] args) {
        Animal animal = new Animal();  // Creating object of parent class
        animal.sound();                // Output: Animal makes a sound

        Dog dog = new Dog();           // Creating object of child class
        dog.sound();                   // Output: Dog barks

        Animal animalDog = new Dog();  // Parent class reference but child class object
        animalDog.sound();             // Output: Dog barks (Runtime polymorphism)
    }
}
Runtime Polymorphism | रनटाइम पॉलिमॉरफिज़्म :

ऊपर दिए गए उदाहरण में, जब हम animalDog ऑब्जेक्ट का उपयोग करके sound() मेथड को कॉल करते हैं, तो यह रनटाइम पर Dog क्लास के मेथड को कॉल करता है, न कि Animal क्लास के मेथड को। इस तरह, मेथड ओवरराइडिंग रनटाइम पॉलिमॉरफिज़्म का समर्थन करती है, जिसमें यह तय होता है कि किस मेथड को कॉल करना है, यह निर्णय रनटाइम पर लिया जाता है।

The @Override Annotation | @Override एनोटेशन :

जावा में, मेथड ओवरराइडिंग के समय @Override एनोटेशन का उपयोग किया जाता है। यह एक कंपाइल-टाइम चेक प्रदान करता है जो यह सुनिश्चित करता है कि जिस मेथड को ओवरराइड किया जा रहा है, वह वास्तव में पैरेंट क्लास में मौजूद हो। यदि पैरेंट क्लास में ऐसा कोई मेथड नहीं होता है, तो कंपाइलर एक एरर दिखाएगा।

class Parent {
    void display() {
        System.out.println("Display method in Parent class");
    }
}

class Child extends Parent {
    @Override
    void display() {
        System.out.println("Display method in Child class");
    }
}

इस उदाहरण में, @Override एनोटेशन यह सुनिश्चित करता है कि display() मेथड को सही तरीके से ओवरराइड किया गया है।

Advantages of Method Overriding in Java in Hindi | मेथड ओवरराइडिंग के लाभ  :

  • रनटाइम पॉलिमॉरफिज़्म: ओवरराइडिंग रनटाइम पॉलिमॉरफिज़्म का समर्थन करता है, जो ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग में लचीलापन और डाइनामिक डिस्पैच प्रदान करता है।
  • विशेष कार्यान्वयन: मेथड ओवरराइडिंग से सब-क्लास अपने अनुसार पैरेंट क्लास के मेथड का कार्यान्वयन बदल सकती है, जिससे अधिक विशिष्ट और कस्टमाइज्ड व्यवहार मिल सकता है।
  • कोड का पुन: उपयोग: ओवरराइडिंग के द्वारा आप पैरेंट क्लास के कोड को पुन: उपयोग कर सकते हैं, और केवल उस हिस्से को बदल सकते हैं जिसे बदलने की आवश्यकता होती है, जिससे कोड को आसानी से बनाए रखा जा सकता है।


In this Chapter

Method Overriding in Hindi
BCA || Java 2024 Paper || MDSU Exam Paper
What is Java, Characteristics of Java - Java क्या है और जावा की विशेषताएं
Difference between Java and C++ in Hindi. (Java और C++ में अंतर )
Applications of Java Programming in Hindi
OOPS concepts in Java Hindi
What is JVM and JRE in hindi
Features of JAVA in hindi
What is Java bean in hindi & advantage in Hindi
Difference between Java and JavaScript in Hindi
JIT Compiler in Hindi
What is Control Statement (structure) in Hindi
What is variable in hindi (वेरिएबल क्या होता है?):-
Java URL Class in Hindi
What is Java swing and its methods in Hindi
Operators in Java in Hindi
Class & Method in Hindi
Inheritance in Java in Hindi | जावा में इनहेरिटेंस हिंदी में
instance Operator in Hindi
Token in Hindi
Data Types in Hindi
Constructor in Hindi
Object-Oriented-Design in Hindi
Conditional Operator in Hindi
Constant in Hindi
Reference Variable in Hindi
Type Casting in Hindi
Literals in Hindi
Identifiers in Hindi
Array in Hindi
Anonymous Array in Hindi
Access Modifiers in Hindi
Enum Data type in Hindi
Keywords in Hindi-Java
Super Keywords in Hindi
Static Keywords in Hindi
Final Keywords in Hindi
New Operator in Hindi
Method Types in Hindi
Method Overloading in Hindi
Method Hiding in Hindi
Class & Object in Hindi
Diffrence Beetween Class & Object in Hindi
Math Class in Hindi
Abstraction in Hindi
Adapter Pattern in Hindi
Package in Hindi
Class & Structure in Java in Hindi
Exception Handling in Hindi