मान लीजिए कि हमारे पास एक सुपरक्लास है जैसे कि
public class Superclass
{
public void method1() {
// do something
}
}// end Superclass
और एक उपवर्ग जैसे
public class Subclass extends Superclass
{
public void method1() {
//override method1() of Superclass
}
public void method2() {
// bla bla bla
}
}// end Subclass
अब निम्नलिखित कोड पर विचार करें
public static void main( String[] args ) {
Superclass obj = new Subclass();
}
मैं चर obj के माध्यम से method2 () को कॉल करने का तरीका ढूंढ रहा हूं। क्या इसे करने का कोई तरीका है? यदि हां, तो यह कार्य कैसे किया जा सकता है?
2 जवाब
ऐसा करने के लिए, आपको इसे SubClass
पर डालना होगा:
((Subclass) obj).method2();
जैसा कि ऊपर दी गई टिप्पणी बताती है, अगर आपको ऐसा करने की आवश्यकता है तो यह संकेत दे सकता है कि आपकी कक्षाएं सही ढंग से तैयार नहीं हैं।
अक्सर एक बेहतर तरीका यह होगा कि सुपरटेप में एक डिफ़ॉल्ट कार्यान्वयन प्रदान किया जाए और केवल उपप्रकार को लागू करने में ओवरराइड किया जाए।
उदाहरण के लिए:
public class Superclass {
public void method1() {
// method1 implementation
}
public void method2() {} // empty implementation
}
public class Subclass extends Superclass {
@Override
public void method2() {
// do subclass stuff
}
}
फिर अपनी कॉल साइट पर आपको बस करना होगा:
Superclass obj = new Subclass();
// Since the runtime type is Subclass, this calls Subclass's
// implementation of method2
obj.method2();
संबंधित सवाल
नए सवाल
java
जावा एक उच्च स्तरीय प्रोग्रामिंग भाषा है। इस टैग का उपयोग तब करें जब आपको भाषा का उपयोग करने या समझने में समस्या हो। इस टैग का उपयोग शायद ही कभी किया जाता है और इसका उपयोग अक्सर [वसंत], [वसंत-बूट], [जकार्ता-ई], [Android], [javafx], [हडूप], [श्रेणी] और [मावेन] के साथ किया जाता है।