오버라이딩은 다형성을 보장하는 기능 중 하나로 부모 클래스의 메서드를 자식 클래스에서 재정의하여 사용할 수 있게 하는 기능이다.
자바에서는 @Override 어노테이션을 통해 오버라이딩 처리한 메서드를 표시 할 수 있다. 그러나 @Override 어노테이션을 표시하지 않아도 오버라이딩은 적용이 가능하다.
그럼에도 어노테이션을 사용하는 이유는
class Animal {
void move(String name) {
System.out.println(name);
};
}
class Dog {
// @Override 어노테이션이 있는 경우는 부모 클래스와 메서드의 매개변수가 다르기 때문에 컴파일 에러가 발생한다.
// @Override 어노테이션이 없는 경우는 오버로딩 메서드로 메서드가 동작하게 된다.
void move() {
System.out.println("Dog");
}
}
정리가 잘 된 글이네요. 도움이 됐습니다.