java - Why can't e.g. List<ChildClass> be passed to a method that takes a List<ParentClass> as parameter? -
सरल उदाहरण:
सार्वजनिक वर्ग व्यक्ति {स्ट्रिंग का नाम; } सार्वजनिक वर्ग की वीआईपी व्यक्ति [स्ट्रिंग शीर्षक; }
और फिर कर रहा है:
सार्वजनिक स्थिर शून्य मुख्य (स्ट्रिंग [] आर्ग्स) {व्यक्ति p = नया व्यक्ति (); पी। नाम = "जॉन"; वीआईपी वीआईपी = नया वीआईपी (); Vip.name = "Bob"; Vip.title = "सीईओ"; सूची के & lt; व्यक्ति & gt; PersonList = नए अर्रेलिस्ट & lt; व्यक्ति & gt; (); सूची के & lt; वीआईपी & gt; VipList = नए अर्रेलिस्ट & lt; वीआईपी & gt; (); personList.add (पी); personList.add (वीआईपी); vipList.add (वीआईपी); printNames (personList); printNames (vipList); } सार्वजनिक स्थिर शून्य प्रिंट-नाम (सूची & amp; व्यक्ति; व्यक्ति & gt; व्यक्तियों) {for (व्यक्ति पी: व्यक्तियों) System.out.println (p.name); }
"प्रिंटनॉम्स (वीपीएलआईएसटी)" पर एक त्रुटि देता है (आवश्यक सूची & lt; व्यक्ति & gt; सूचीबद्ध सूची & lt; वीआईपी & gt;)। इसका मतलब यह है कि हालांकि वीआईपी एक है व्यक्ति, सूची & lt; वीआईपी & gt; एक सूची & lt; व्यक्ति & gt;?
आप बस के नियमों से प्रतिबंधित हैं। यदि आप इस व्यवहार को "ठीक" करने में कैसे दिलचस्पी रखते हैं, तो बस प्रिंट नाम ()
विधि को सूची & lt; इसके बजाय व्यक्ति & gt;
तर्क प्रदान करता है।
Comments
Post a Comment