मैं निम्नलिखित सार कक्षाएं:जावा जेनरिक और विरासत
public abstract class AbSuperClass1<K,S> {
//class definition
}
और:
public class Concrete2 extends AbSuperClass2<String, String>{
public void method(Concrete1 arg){
//method definition
}
}
:
public abstract class AbSuperClass2<K,S> {
public abstract <Q extends AbSuperClass1<K,S>> void method(Q arg);
...
}
मैं तो दो ठोस कार्यान्वयन
public class Concrete1 extends AbSuperClass<String, String>{
//class definition
}
और है 210
हालांकि, यह संकलित नहीं होगा, क्योंकि कंक्रीट 1 को कंक्रीट 2 में विधि के तर्क के लिए वैध प्रकार के रूप में पहचाना नहीं गया है, लेकिन जहां तक मैं देख सकता हूं कि कंक्रीट 1 सही प्रकार का है, क्योंकि यह AbSuperClass1 को बढ़ाता है।
मैं गलत कहां जा रहा हूं?
यदि संभव हो, तो मैं आपके जावा कोड को लिखने के लिए पर्यावरण के रूप में ग्रहण का उपयोग करने का सुझाव देता हूं। ग्रहण आपको वास्तव में गलत दिखाता है और माउस क्लिक के साथ लापता फ़ंक्शन को जोड़ने के लिए एक ड्रॉप मेनू प्रदान करता है। इस तरह की क्षमता आपके सीखने की अवस्था और विकास के समय में काफी तेजी से बढ़ सकती है। –
'सार्वजनिक सार <क्यू AbSuperClass1> शून्य विधि (क्यू तर्क) बढ़ाता है;' 'सार्वजनिक सार शून्य विधि (AbSuperClass1 तर्क) के बराबर है;'। –