Yanıtlar:
@Override başlangıçta dilde değildi. Ekleme ihtiyacı duyulduğunda, genel bir mekanizma (ek açıklamalar) kullanmak, dile yeni bir anahtar kelime eklemekten daha kolaydı. Yeni bir anahtar kelime eklemek her zaman uyumsuz bir değişikliktir, çünkü bu kelimeleri tanımlayıcı olarak kullanan programları kırabilir.
İlk günden itibaren bir geçersiz kılma işareti ekleyen dillerde, genellikle bir anahtar kelimedir (örnekler Kotlin ve Scala'dır), Java'da, geçersiz kılma işareti olmayan eski Java sürümüyle geriye dönük olarak uyumlu kalma meselesiydi.
defaultzaten ayrılmış bir anahtar kelimeydi (anahtar ifadelerinde kullanılır) - bunun için yeni bir kullanım eklediler. Ayrıca, şu anda hiçbir şey yapmayan ancak ileride kullanılmak üzere ayrılmış birkaç anahtar kelime vardır (const, goto) - bkz. JLS §3.9
enumEklenen anahtar kelimenin eski kodu kıracağını hatırlıyorum . Burada daha fazla anahtar kelime: stackoverflow.com/questions/16506411
Davranışı geçersiz kılmak için @Override ek açıklamasına gerek yoktur ; Bu bir açıklamadır, çünkü sadece yöntemin derleyiciye yönelik amacının bir bağlamını ekler, yöntemin kendisini değiştirmez.
Ek açıklama olmadan, işlevselliği geçersiz kılmayı düşünebilirsiniz , ancak yanlışlıkla yapamazsınız (biraz farklı bir imza kullanarak). Ek açıklama eklemek, derleyiciye bu yöntem aslında davranışı geçersiz kılmadığında bir hata oluşturmasını söyler.
Bu nedenle, bir ek açıklama olarak mükemmel bir anlam ifade eder.