답변:
@Override는 원래 언어가 아닙니다. 추가해야 할 필요성이 느껴지면 언어에 새 키워드를 추가하는 것보다 일반적인 메커니즘 (주석)을 사용하는 것이 더 쉬웠습니다. 새 키워드를 추가하면 해당 단어를 식별자로 사용하는 프로그램이 중단 될 수 있으므로 항상 호환되지 않는 변경 사항입니다.
첫날부터 재정의 마커를 추가하는 언어에서는 키워드 (예 : Kotlin 및 Scala) 인 경우가 많으며, Java에서는 재정의 마커가없는 이전 Java 버전과 하위 호환성을 유지해야했습니다.
default
이미 예약 된 키워드였습니다 (스위치 설명에 사용됨). 새로운 키워드를 추가했습니다. 현재로서는 아무 것도하지 않지만 향후 사용을 위해 예약 된 키워드도 있습니다 (const, goto) -JLS §3.9
enum
추가 된 키워드가 이전 코드를 손상시킬 수 있음을 기억합니다 . 더 많은 키워드 여기 속보 : stackoverflow.com/questions/16506411
당신은 필요하지 않습니다 실제로 동작을 재정의하기 @Override 주석 이 . 단순히 메서드 자체를 변경하지 않고 컴파일러에 대한 메서드 의도의 컨텍스트를 추가하기 때문에 주석입니다.
주석이 없으면 기능을 재정의 하려고 있지만 실수로 약간 다르게 서명하면 실패합니다. 주석을 추가하면이 메서드가 실제로 동작을 재정의하지 않는 경우 오류를 생성하도록 컴파일러에 지시합니다.
따라서 주석으로 완벽하게 이해됩니다.