मेरे पास एक कक्षा है जो एक कक्षा को बढ़ाती है जिसे मुझे ओवरराइड करने की आवश्यकता है, लेकिन मुझे उस वर्ग की मूल कक्षा को कॉल करने की आवश्यकता है। चूंकि मैं सुपर कॉल नहीं कर सकता क्योंकि यह प्रत्यक्ष माता-पिता को निष्पादित करेगा मेरे माता-पिता वर्ग के माता-पिता को पाने का सबसे अच्छा तरीका क्या है?जावा: आप अभिभावक वर्ग विधि को दो स्तरों तक कैसे पहुंचाते हैं?
मुझे यकीन है कि यह एक मूल प्रश्न है, लेकिन यह थोड़ी देर के बाद से मैं कोई जावा कर रहा हूं।
class A
{
public void myMethod()
{ /* ... */ }
}
class B extends A
{
public void myMethod()
{ /* Another code */ }
}
class C extends B
{
I need to call Class A here
{ /* Another code */ }
}
लगभग हमेशा सुपर का उपयोग कर बुरा रूप है। इसके लिए एकमात्र संभावित अपवाद एक ओवरडिंग विधि कॉल है जो इसे ओवरराइड करता है। ऐसे मामलों में एक सार को लागू करना या कुछ भी विधि नहीं करना बेहतर हो सकता है और "मूल" विधि को अंतिम रूप देने के साथ ओवरराइड किया जा सकता है। हालांकि इसका मतलब है कि आपको केवल एक शॉट मिलता है। गहरी विरासत वैसे भी खराब हैं ... –
[जावा का संभावित डुप्लिकेट] कैसे ग्रैंड माता-पिता की विधि को कॉल करें?] (Http://stackoverflow.com/questions/2584377/java-how-to-call-method-of-grand- माता-पिता)। Http://stackoverflow.com/questions/586363/why-is-super-super-method-not-allowed-in-java – finnw