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

Java में ओवरराइडिंग के दौरान throws क्लॉज में पैरेंट-चाइल्ड हायरार्की महत्वपूर्ण है?

हाँ, अपवाद हायरार्की मेथड ओवरराइडिंग में throws क्लॉज को नियंत्रित करती है। नियम:

  1. ओवरराइडिंग विधि वही चेक्ड अपवाद या उसके सबक्लास फेंक सकती है।
  2. यह सुपरक्लास अपवाद नहीं फेंक सकती (अधिक सामान्य)।
  3. यह कोई चेक्ड अपवाद नहीं फेंकने का चयन कर सकती है।

उदाहरण: मान्य (सबक्लास अपवाद)

class Demo {
    public void sample() throws ArrayIndexOutOfBoundsException { ... }
}
class SuperTest extends Demo {
    public void sample() throws IndexOutOfBoundsException { ... } // ArrayIndexOutOfBoundsException का सुपरक्लास - अमान्य!
}

उपरोक्त अमान्य है क्योंकि IndexOutOfBoundsException, ArrayIndexOutOfBoundsException का पैरेंट है।

उदाहरण: मान्य (सबक्लास अपवाद)

class Demo {
    public void sample() throws IOException { ... }
}
class SuperTest extends Demo {
    public void sample() throws EOFException { ... } // IOException का सबक्लास - मान्य
}

कंपाइलर प्रवर्तन

यदि सबक्लास एक व्यापक चेक्ड अपवाद फेंकता है, तो कंपाइलर त्रुटि देता है: "overridden method does not throw X"।

अनचेक्ड अपवाद

RuntimeException और उसके सबक्लास इन नियमों के अधीन नहीं हैं।

  1. - Java में super कीवर्ड

    super वेरिएबल तत्काल पैरेंट क्लास इंस्टेंस को संदर्भित करता है।super वेरिएबल तत्काल पैरेंट क्लास मेथड को इनवोक कर सकता है।super() तत्काल पैरेंट क्लास कंस्ट्रक्टर के रूप में कार्य करता है और चाइल्ड क्लास कंस्ट्रक्टर में पहली लाइन होनी चाहिए।ओवरराइडन मेथड के सुपरक्लास संस्करण को इनवोक करते समय super क

  1. - Java में Method Overriding

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

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

    आप हमेशा अपने पैरेंट क्लास के मेथड्स को ओवरराइड कर सकते हैं। पैरेंट के मेथड्स को ओवरराइड करने का एक कारण यह है कि आप अपने सबक्लास में विशेष या अलग कार्यक्षमता चाहते हैं। उदाहरण #!/usr/bin/python class Parent: # पैरेंट क्लास परिभाषित करें def myMethod(self): print Calling parent method