आपको हमेशा विधियों को एनोटेट करना चाहिए @Override
यदि यह उपलब्ध है।
जेडीके 5 में इसका मतलब है सुपरक्लास के ओवरराइडिंग विधियों, जेडीके 6, और 7 में इसका मतलब सुपरक्लास के तरीकों को ओवरराइड करना और इंटरफेस के तरीकों को लागू करना है। जैसा कि पहले उल्लेख किया गया है, यह संकलक को त्रुटियों को पकड़ने की अनुमति देता है जहां आपको लगता है कि आप एक विधि को ओवरराइड कर रहे हैं (या कार्यान्वित कर रहे हैं), लेकिन वास्तव में एक नई विधि (विभिन्न हस्ताक्षर) को परिभाषित कर रहे हैं।
equals(Object)
बनाम equals(YourObject)
उदाहरण बिंदु में एक मानक मामला है, लेकिन इंटरफेस कार्यान्वयन के लिए एक ही तर्क बनाया जा सकता है।
मैं कल्पना करता हूं कि इंटरफेस के कार्यान्वयन विधियों को एनोटेट करना अनिवार्य नहीं है कि जेडीके 5 ने संकलन त्रुटि के रूप में इसे ध्वजांकित किया है। यदि जेडीके 6 ने इस एनोटेशन को अनिवार्य बना दिया है, तो यह पीछे की संगतता को तोड़ देगा।
मैं ग्रहण उपयोगकर्ता नहीं हूं, लेकिन अन्य आईडीई (इंटेलिजे) में, @Override
एनोटेशन केवल तभी जोड़ा जाता है जब परियोजना जेडीके 6+ प्रोजेक्ट के रूप में सेट की जाती है। मैं कल्पना करता हूं कि ग्रहण समान है।
हालांकि, मैं इस उपयोग के लिए एक अलग एनोटेशन देखना पसंद करता, शायद @Implements
एनोटेशन।
वाह यह प्रश्न छोटा हो सकता है, लेकिन यह सवाल मुझे चाहिए। धन्यवाद –
मुझे @ ओवरराइड आलेख के लिए प्रतिस्थापन नहीं मिल रहा है (ओरेकल ने हाल ही में पुराने सूर्य ब्लॉग को स्थानांतरित कर दिया है)। क्या आप जानते हैं कि इसे कैसे ढूंढें? –
अब हमारे पास @ 2015 (एन) एनोटेशन होना चाहिए (2015)। इससे चीजें स्पष्ट हो जाएंगी! – Alex