Java에서 메서드 오버라이딩
발행: (2025년 12월 15일 오후 08:43 GMT+9)
2 min read
원문: Dev.to
Source: Dev.to
메서드 오버라이딩이란
서브클래스가 이미 부모 클래스에 정의된 메서드에 대해 구체적인 구현을 제공할 때 이를 메서드 오버라이딩이라고 합니다.
서브클래스에서 오버라이드된 메서드는 부모 클래스의 메서드와 동일한 이름, 매개변수, 반환 타입을 가져야 합니다.
메서드 오버라이딩 규칙
- Static 메서드는 오버라이드될 수 없습니다. 서브클래스에서 슈퍼클래스와 동일한 시그니처를 가진 static 메서드를 정의하면 슈퍼클래스 메서드를 숨깁니다.
- Instance 메서드는 오버라이드될 수 있지만, 서브클래스가 슈퍼클래스의 static 메서드를 오버라이드할 수는 없습니다.
- 서브클래스의 static 메서드가 슈퍼클래스의 static 메서드와 동일한 시그니처를 가질 경우, 원래 메서드를 숨깁니다.
- Private 메서드는 서브클래스에 보이지 않기 때문에 오버라이드될 수 없습니다.
- 슈퍼클래스 메서드가 private인 경우, 동일한 이름을 가진 서브클래스 메서드는 새로운 독립 메서드로 취급되며, 부모 클래스와는 관련이 없습니다.