जावा 1.6 के स्थान पर विस्तारित कक्षा का उपयोग करें। मैंने कुछ तरीकों को शामिल करने के लिए एक कक्षा बढ़ा दी है। अब मैं बेस क्लास के स्थान पर विस्तारित कक्षा का उपयोग करना चाहता हूं। हालांकि, कक्षा वर्ग का उपयोग करने वाले वर्ग विस्तारित वर्ग को "पहचान" नहीं सकते हैं। (अनुशंसित) तय क्या है?बेस क्लास
मुझे पता है कि यह विभिन्न स्वादों में कई बार पूछा गया है, लेकिन मुझे यह नहीं मिल रहा है!
उदाहरण वर्ग SAMRecord
बढ़ाएँ और SAMRecordExt
समापन का उपयोग करें:
public class SAMRecordExt extends SAMRecord{
public SAMRecordExt(SAMFileHeader header) {
super(header);
}
}
अब, जबकि इस काम करता है:
SAMRecord rec= sam.iterator().next();
यह मैं
SAMRecordExt recext= sam.iterator().next();
>>> Type mismatch: cannot convert from SAMRecord to SAMRecordExt
हैरानगी एक संकलन त्रुटि देता है, इस या तो काम नहीं करता (रनटाइम त्रुटि):
SAMRecordExt recext= (SAMRecordExt) sam.iterator().next();
>>> Exception in thread "main" java.lang.ClassCastException: htsjdk.samtools.SAMRecord cannot be cast to markDupsByStartEnd.SAMRecordExt
at markDupsByStartEnd.Main.main(Main.java:96)
मैं विस्तारित वर्ग का काम कैसे कर सकता हूं जहां बेस क्लास काम करता है?
संपादित करें: कक्षाओं के बारे में अधिक जानकारी मैं उपयोग कर रहा हूं। sam
वस्तु आता
SamReaderFactory sf = SamReaderFactory.makeDefault();
SamReader sam= sf.open(new File(insam));
सभी दस्तावेज़ से https://samtools.github.io/htsjdk/javadoc/htsjdk/index.html
कर सकते हैं आप उपरोक्त कोड –
में परिवर्तनीय "सैम" की घोषणा प्रदान करते हैं ऐसा लगता है कि उस वर्ग का उपयोग सुपर क्लास के साथ किया जाना था, जिसका अर्थ है: लेखक सुपर क्लास के बारे में जानता था, और उसमें प्रदान की गई कार्यक्षमता की आवश्यकता होती है। अब, समस्या यह है कि, जब आप उस कलाकार को करने का प्रयास करते हैं: बाल वर्ग का हर उदाहरण सुपर क्लास का एक उदाहरण है, लेकिन सुपर क्लास का हर उदाहरण बाल वर्ग का उदाहरण नहीं है। – Stultuske
ऐसा लगता है कि आप उस कोड को नहीं चला रहे हैं जो आपको लगता है कि आप चल रहे हैं, या आप पोस्ट किए गए कोड को संकलित नहीं कर रहे हैं। आपके द्वारा पोस्ट किए गए कोड के अनुसार आपको 'SAMRecordExt को SAMRecord' तक प्रदान की गई कोई भी संकलन त्रुटियां नहीं मिलनी चाहिए। – EJP