यह सिर्फ जिज्ञासा से बाहर एक सवाल है।जावा बहुरूपता
मैं जानता हूँ कि जब हम संदर्भ की यह सुपर क्लास है द्वारा एक उपवर्ग वस्तु की ओवरराइड विधि कॉल, JVM वस्तु के प्रकार को महत्व देता है और संदर्भ की टाइप करने के लिए नहीं है।
run:
Animal is eating...
Horse is eating...
BUILD SUCCESSFUL (total time: 0 seconds)
अब मेरे सवाल है, वहाँ किसी भी तरह से है कि हम संदर्भ ज उपयोग कर सकते हैं कॉल कर सकता:
class Animal
{
void eat()
{
System.out.println("Animal is eating...");
}
}
class Horse extends Animal
{
@Override
void eat()
{
System.out.println("Horse is eating...");
}
}
public class PolymorphismTest
{
public static void main(String...args)
{
Animal a=new Animal();
a.eat();
Animal h= new Horse();
h.eat();
}
}
जैसी उम्मीद थी, मैं उत्पादन प्राप्त करें:
यह मेरा सरल कोड है superclass खाने() विधि और उपclass एक नहीं? मुझे पता है कि यह एक प्रश्न है जो कुछ हद तक बहुरूपता के नियमों के खिलाफ है लेकिन आप कभी नहीं जानते कि ऐसा करने के लिए आवश्यकता कब उत्पन्न हो सकती है।
मैं पशु लेकिन कोई भाग्य के संदर्भ ज टाइपकास्ट करने की कोशिश की। कोई विचार?
http://stackoverflow.com/questions/5411434/how-to-call-a-superclass-method-using-java-reflection –
की संभावित डुप्लिकेट और यह भी http के संभावित डुप्लिकेट: // stackoverflow। कॉम/प्रश्न/1032847/कैन-जावा-कॉल-पैरेंट-ओवरराइड-विधि-इन-ऑब्जेक्ट्स-लेकिन-नहीं-सबटाइप –
मैं सहमत हूं। इसके माध्यम से नहीं जाने के लिए खेद है। मैंने कुछ शोध किया लेकिन यह नहीं मिला। – Kameron