Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> Java

Java में Method Overriding

ओवरराइडिंग सबक्लास टाइप के लिए विशिष्ट व्यवहार को परिभाषित करने की क्षमता है, जिसका अर्थ है कि एक सबक्लास अपनी आवश्यकता के आधार पर पैरेंट क्लास मेथड को इम्प्लीमेंट कर सकता है।

ऑब्जेक्ट-ओरिएंटेड शब्दों में, ओवरराइडिंग का अर्थ है मौजूदा मेथड की कार्यक्षमता को ओवरराइड करना।

उदाहरण

आइए एक उदाहरण देखें।

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"); 
    } 
} 
public class TestDog { 
    public static void main(String args[]) { 
        Animal a = new Animal(); // Animal रेफरेंस और ऑब्जेक्ट 
        Animal b = new Dog(); // Animal रेफरेंस लेकिन Dog ऑब्जेक्ट 
        a.move(); // Animal क्लास में मेथड चलाता है 
        b.move(); // Dog क्लास में मेथड चलाता है 
    } 
}

आउटपुट

यह निम्नलिखित परिणाम उत्पन्न करेगा −

Animals can move Dogs can walk and run

उपरोक्त उदाहरण में, आप देख सकते हैं कि भले ही b Animal टाइप का है, यह Dog क्लास में move मेथड चलाता है। इसका कारण है: कंपाइल टाइम पर, चेक रेफरेंस टाइप पर किया जाता है। हालांकि, रनटाइम में, JVM ऑब्जेक्ट टाइप का पता लगाता है और उस विशेष ऑब्जेक्ट से संबंधित मेथड को चलाता है।
इसलिए, उपरोक्त उदाहरण में, प्रोग्राम ठीक से कंपाइल होगा क्योंकि Animal क्लास में move मेथड है। फिर, रनटाइम पर, यह उस ऑब्जेक्ट के लिए विशिष्ट मेथड चलाता है।

  1. - Java में Method Overloading बनाम Method Overriding

    मेथड ओवरलोडिंग कंपाइल-टाइम पॉलीमॉर्फिज्म का एक प्रकार है जबकि मेथड ओवरराइडिंग रनटाइम पॉलीमॉर्फिज्म का एक प्रकार है।मेथड ओवरलोडिंग कोड पठनीयता बढ़ाता है जबकि मेथड ओवरराइडिंग सुपरक्लास में मौजूद मेथड को प्रतिस्थापित करने के लिए सबक्लास में मेथड का विशिष्ट कार्यान्वयन प्रदान करता है।मेथड ओवरलोडिंग एक क

  1. - Java मेथड ओवरराइडिंग के नियम

    एक मेथड को ठीक से ओवरराइड करते समय हमें निम्नलिखित नियमों पर विचार करना चाहिए −आर्गुमेंट लिस्ट ओवरराइडन मेथड के समान होनी चाहिए।रिटर्न टाइप वही होना चाहिए या सुपरक्लास में घोषित मूल ओवरराइडन मेथड के रिटर्न टाइप का सबटाइप होना चाहिए।एक्सेस लेवल ओवरराइडन मेथड के एक्सेस लेवल से अधिक प्रतिबंधात्मक नहीं

  1. - Java में toString() को ओवरराइड क्यों करें: ऑब्जेक्ट प्रतिनिधित्व बढ़ाना

    Java में toString() मेथड का उद्देश्य क्या है? यदि हम किसी क्लास के ऑब्जेक्ट को String के रूप में दर्शाना चाहते हैं, तो हम toString() मेथड का उपयोग कर सकते हैं जो ऑब्जेक्ट का टेक्स्टुअल प्रतिनिधित्व लौटाता है। जब आप किसी ऑब्जेक्ट को प्रिंट करते हैं, तो डिफ़ॉल्ट रूप से Java कंपाइलर ऑब्जेक्ट पर toStrin