2025-08-09 12:51
Tags: 소프트웨어 공학
오버라이딩 (Overriding)
- 다형성을 구현하는 핵심 방법
- 부모 클래스의 메서드를 자식 클래스에서 상황에 맞게 덮어 써서 (Override) 활용
- 재사용성 높이면서도 유연하고 확장성 있는 설계
- 동일 이름, 동일 매개변수, 동일 반환 타입
- 오버로딩은 이름이 같아서 다형성 구현은 공통점
- 다만 상속에서 덮어씌우는 거냐 (오버라이딩), 같은 클래스 내에서 이름을 공유하는 거냐(오버로딩) 에 따라 상당히 다른 개념
구분 | 오버라이딩 (Overriding) | 오버로딩 (Overloading) |
---|---|---|
개념 | 부모 클래스의 메서드를 자식 클래스에서 재정의 | 한 클래스 내에서 이름은 같지만 매개변수가 다른 여러 메서드를 정의 |
관계 | 상속 관계 (부모-자식) | 같은 클래스 내 |
메서드 시그니처 | 이름, 매개변수, 반환 타입 모두 같아야 함 | 이름은 같지만, 매개변수의 개수나 타입이 달라야 함 |
시점 | **런타임(Runtime)**에 호출될 메서드가 결정됨 (동적 바인딩) | 컴파일(Compile) 시점에 호출될 메서드가 결정됨 (정적 바인딩) |