मैं एक सवाल इस कोड के बारे में यहींबहुरूपता और स्टेटिक तरीके
public Car {
public static void m1(){
System.out.println("a");
}
public void m2(){
System.out.println("b");
}
}
class Mini extends Car {
public static void m1() {
System.out.println("c");
}
public void m2(){
System.out.println("d");
}
public static void main(String args[]) {
Car c = new Mini();
c.m1();
c.m2();
}
}
मुझे पता है कि बहुरूपता केवल उदाहरण के तरीकों के लिए, स्थिर तरीकों के साथ काम नहीं करता है। और यह भी कि ओवरराइडिंग स्थिर तरीकों के लिए काम नहीं करता है।
इसलिए मुझे लगता है कि इस कार्यक्रम के प्रिंट आउट करना चाहिए: सी, डी
क्योंकि सी एम 1 प्रणाली को बुलाती है, लेकिन यह स्थिर है, इसलिए इसे ओवरराइड नहीं कर सकते हैं और यह वर्ग मिनी के बजाय कार में प्रणाली को बुलाती है।
क्या यह सही है?
लेकिन, मेरा पाठ्यपुस्तक का कहना है कि इस सवाल का जवाब होना चाहिए: ए, डी
यह कोई गलती है? क्योंकि मैं अभी थोड़ा उलझन में हूँ।
कृपया इसे साफ़ करें, धन्यवाद।
+1 * यही कारण है कि आपको इस तरह के माध्यम से स्थिर तरीकों को कभी भी कॉल नहीं करना चाहिए। * – Joffrey