@Override 는 그냥 부모 클래스에서 오버라이딩 된 메서드라고 단순하게만 알고있다.
좀 더 자세히 알아보자!
어노테이션은 사전적 의미로 주석을 뜻합니다.
주석과는 역할이 다르지만, 주석처럼 달아 특수한 의미 부여가 가능하며, 기능 주입이 가능합니다.
어노테이션을 사용하는 가장 큰 이유는 프로그램에게 추가 정보를 제공하는 메타 데이터를 위해서 사용합니다.
자식 클래스에 여러 개의 메서드가 정의가 되어 있을 경우
해당 메소드가 부모 클래스에 있는 메서드를 Override 했다는 것을 명시적으로 선언합니다.
가령 어노테이션을 사용하지 않으면 자식 클래스에 여러 개의 메서드가 있을 경우,
어떤 메서드가 Override 되었는지 쉽게 알기 어렵습니다.
이 때, 오버라이드 메서드를 사용하여 명시적으로 선언하게 되면 많은 메서드 중에서 어떠한 메서드가 부모 클래스로부터 오버라이딩이 되었는지 쉽게 파악할 수 있습니다.
실제로 본인이 작성한 코드는 쉽게 파악이 가능하겠지만, 다른 사람이 작성한 코드일 경우에는 알아보기가 어려울 수밖에 없습니다.
컴파일러에게 문법 체크를 하도록 알린다
오버라이딩을 하기 위해서는 부모 클래스의 있는 메서드명과 매개변수를 동일하게 가져가야 합니다.
그런데 제대로 오버라이딩을 했다고 생각했는데, 매개변수를 잘못 지정했을 수도 있습니다.
따라서 해당 어노테이션을 사용하면 "이 메서드는 Override 된 거야!"라고 컴파일러에게 알려 컴파일시 체크를 할 수 있습니다.
즉, @Override 를 사용하면 오버라이딩 된 메소드를 확실하게 알 수 있어 가독성이 높아지고
제대로 오버라이드를 하였는지 확인할 수 있는 수단으로 사용된다.
잘 보고 갑니다^^