जवाबों:
@ ऑवरराइड मूल रूप से भाषा में नहीं था। जब इसे जोड़ने की आवश्यकता महसूस की गई, तो भाषा में एक नया कीवर्ड जोड़ने की तुलना में सामान्य तंत्र (एनोटेशन) का उपयोग करना आसान था। एक नया कीवर्ड जोड़ना हमेशा एक असंगत परिवर्तन होता है क्योंकि यह उन कार्यक्रमों को तोड़ सकता है जो पहचानकर्ता के रूप में उस शब्द का उपयोग करते हैं।
उन भाषाओं में, जो पहले दिन से एक ओवरराइड मार्कर जोड़ते हैं, यह अक्सर एक कीवर्ड होता है (उदाहरण कोटलिन और स्काला हैं), जावा में यह पुराने जावा संस्करण के साथ पीछे की ओर रहने की बात थी, जिसमें कोई ओवरराइड मार्कर नहीं था।
default
पहले से ही एक आरक्षित कीवर्ड था (स्विच स्टेटमेंट में प्रयुक्त) - उन्होंने इसके लिए एक नया उपयोग जोड़ा है। देखते हैं - भी कुछ खोजशब्दों जो अभी कुछ भी नहीं करते, लेकिन भविष्य में उपयोग (स्थिरांक, गोटो) के लिए आरक्षित हैं कर रहे हैं JLS §3.9
enum
कि जोड़ा गया कीवर्ड पुराने कोड को तोड़ देगा। यहां अधिक ब्रेकिंग कीवर्ड: stackoverflow.com/questions/16506411
आपको वास्तव में व्यवहार को ओवरराइड करने के लिए @ ऑवरराइड एनोटेशन की आवश्यकता नहीं है; यह एक एनोटेशन है क्योंकि यह केवल संकलक के लिए विधि के इरादे के कुछ संदर्भ को जोड़ रहा है, न कि विधि को ही बदल रहा है।
एनोटेशन के बिना, आप कार्यक्षमता को ओवरराइड करने का इरादा कर सकते हैं, लेकिन गलती से ऐसा करने में विफल (थोड़ा अलग हस्ताक्षर का उपयोग करके)। एनोटेशन को जोड़ना कंपाइलर को एक त्रुटि उत्पन्न करने के लिए कहता है यदि यह विधि वास्तव में व्यवहार से अधिक नहीं है।
जैसे, यह एनोटेशन के रूप में सही समझ में आता है।