मेरे पास "प्लेसपार्सर" नामक एक कक्षा में एक विधि है जो extends
"ModelParser":जावा: ओवरराइडिंग या ओवरलोडिंग विधि?
protected Place parseModel(JSONObject element) ...
ए प्लेस मॉडल का एक उप वर्ग है। क्या @Override
एनोटेशन उपरोक्त कोड में जोड़ा जाना चाहिए? चूंकि विधि के पास एक अलग रिटर्न प्रकार है, क्या यह अभी भी समान श्रेणी और तर्क के साथ बेस क्लास विधि को ओवरराइड करने के रूप में गिना जाता है/क्या रिटर्न प्रकार 'हस्ताक्षर' को बदलता है?
"मॉडलपार्स" विधि इस "मॉडलटी" की तरह दिखती है "मॉडल" भी फैली हुई है:
protected abstract ModelT parseModel(JSONObject element)
throws JSONException;
अद्यतन @ जोन स्कीट:
बेस क्लास इस तरह घोषित किया गया है:
public abstract class ModelParser<ModelT extends Model> {
मैंने पहले कक्षा के लिए <ModelT extends Model>
शैली घोषणा नहीं देखी थी।
http://stackoverflow.com/questions/1882584/what-is-a-covariant-return-type देखें। (नहीं * बिल्कुल * आपका मामला, क्योंकि 'प्लेस' 'मॉडलटी' का विस्तार नहीं करता है।) –
@Eli: मुझे संदेह है कि प्लेस वास्तव में मॉडलटी को बढ़ाता है, अन्यथा यह कोड संकलित नहीं होगा। (या मॉडलटी एक सामान्य प्रकार पैरामीटर है ...) –
@ जोन: मैंने सवाल अपडेट किया है - यदि आप 'मॉडलटी' और' प्लेस 'के बीच संबंधों को समझा सकते हैं तो मैं बहुत आभारी हूं। – Mikaveli