부모클래스와 자식클래스 여러개가 있을때, 부모클래스는 기본적인 동작방법을 정의한다는 공통분모 뜻이고 오버라이딩을 구현한다는것은 공통적으로 가지고 있는 기본메소드를 쓰고 싶은게 아니라 예외적으로 변칙이 필요한 더 높은 우선순위의 메소드가 필요하다는 뜻이다.
오버라이딩이 되려면 기본적으로 메소드의 이름이 같아야한다. 그리고 매개변수의 숫자와 데이터타입 그리고 순서도 모두 같아야하고 리턴 타입도 같아야한다. 참고로 이런것들을 메소드의 서명(signature)라고 하고, 다시 말해서, 시그니쳐가 같아야한다는 것이다.
추가적으로, 부모클래스의 메소드에 기능을 조금 추가하기위해 오버라이딩하는 경우에는, super
를 사용해서 그 부모클래스의 메소드와 똑같다는 재정의를 하고, super
가 쓰여진 라인 밑에부터 새로운 로직을 추가할 수 있다.