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

क्या Java में ओवरराइडिंग के दौरान मेथड सिग्नेचर बदला जा सकता है?

नहीं, Java में मेथड ओवरराइडिंग के लिए समान मेथड सिग्नेचर आवश्यक है: समान नाम, समान पैरामीटर सूची, और समान रिटर्न टाइप (या कोवेरिएंट रिटर्न टाइप)। सिग्नेचर बदलने से ओवरराइडिंग के बजाय ओवरलोडिंग होती है।

उदाहरण

class Super {
    void sample(int a, int b) {
        System.out.println("Method of the Super class");
    }
}

public class MethodOverriding extends Super {
    void sample(int a, float b) { // पैरामीटर प्रकार अलग -> ओवरलोडिंग
        System.out.println("Method of the Sub class");
    }

    public static void main(String args[]) {
        MethodOverriding obj = new MethodOverriding();
        obj.sample(20, 20); // int, int -> सुपरक्लास विधि कॉल होती है
    }
}

आउटपुट

Method of the Super class

व्याख्या

चूंकि पैरामीटर प्रकार भिन्न हैं (int, int बनाम int, float), सबक्लास विधि सुपरक्लास विधि को ओवरलोड करती है, ओवरराइड नहीं करती। जब obj.sample(20, 20) कॉल किया जाता है, तो सटीक मिलान सुपरक्लास विधि होती है।

ओवरराइडिंग नियम

  • समान मेथड नाम
  • समान पैरामीटर सूची (क्रम और प्रकार)
  • समान या कोवेरिएंट रिटर्न टाइप
  • एक्सेस मॉडिफायर अधिक प्रतिबंधात्मक नहीं हो सकता
  • चेक्ड अपवाद नियमों का पालन करना चाहिए
  1. क्या Java में Enum किसी क्लास को एक्सटेंड कर सकता है? क्या Java में Enum किसी क्लास को एक्सटेंड कर सकता है?

    नहीं, Java में सभी एनम अंतर्निहित रूप से java.lang.Enum को एक्सटेंड करते हैं। चूंकि Java बहु-विरासत का समर्थन नहीं करता, एनम किसी अन्य क्लास को एक्सटेंड नहीं कर सकते।त्रुटि उदाहरणclass Sample { } enum Scooters extends Sample { } // संकलन त्रुटिसंकलन त्रुटिEnumExample.java:5: error: { expected enum

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

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

  1. - Java में Method Overriding

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