कोड नीचे "1" प्रिंट क्यों करता है?जावा कॉन्वारेन्ट रिटर्न टाइप
class A {
int x = 1;
}
class B extends A {
int x = 2;
}
class Base {
A getObject() {
System.out.println("Base");
return new B();
}
}
public class CovariantReturn extends Base {
B getObject() {
System.out.println("CovariantReturn");
return new B();
}
/**
* @param args
*/
public static void main(String[] args) {
Base test = new CovariantReturn();
System.out.println(test.getObject() instanceof B);
System.out.println(test.getObject().x);
}
}
लेकिन मैं नई बी लौट रहा हूँ() – kris979
लेकिन विधि 'वापस जाने के लिए A' परिभाषित करता है। और इसलिए 'एएक्स' का उपयोग किया जाता है। – Bozho
@kris आप 'ए' के संदर्भ में विधि को कॉल कर रहे हैं जिसमें इसके प्रकार 'ए' –