반응형
자바에서 오버로딩과 오버라이딩은 모두 메서드를 다형적으로 사용하는 방식이지만, 목적과 사용 방식이 다릅니다.
🔁 오버로딩 (Overloading)
같은 이름의 메서드를 매개변수만 다르게 정의하는 것
- 정의 위치: 같은 클래스 내에서 사용
- 조건:
- 메서드 이름은 같음
- 매개변수의 개수, 타입, 순서 중 하나 이상이 달라야 함
- 리턴 타입만 다르면 오버로딩 불가능
- 예시:
- void print() {} void print(String s) {} void print(int x, int y) {}
- 용도: 다양한 입력에 대해 같은 기능을 수행하고 싶을 때
🔄 오버라이딩 (Overriding)
상위 클래스의 메서드를 하위 클래스에서 재정의하는 것
- 정의 위치: 상속 관계에서 하위 클래스에서 사용
- 조건:
- 메서드 이름, 매개변수, 리턴 타입 모두 동일해야 함
- 접근 제어자는 상위 클래스보다 좁으면 안 됨
- @Override 어노테이션 사용 권장
- 예시:
- class Animal { void sound() { System.out.println("Animal sound"); } } class Dog extends Animal { @Override void sound() { System.out.println("Bark"); } }
- 용도: 상속받은 기능을 자식 클래스에서 변경하고 싶을 때
📌 핵심 차이 요약
항목 오버로딩 오버라이딩
| 관계 | 같은 클래스 내 | 상속 관계 (부모 → 자식) |
| 메서드 이름 | 같음 | 같음 |
| 매개변수 | 다름 | 같음 |
| 리턴 타입 | 상관 없음 | 같아야 함 |
| 목적 | 다양한 입력 처리 | 부모 메서드 기능 재정의 |
728x90
반응형
'IT > 개발자 면접' 카테고리의 다른 글
| java Call by Value와 Call by Reference (1) | 2025.11.21 |
|---|---|
| 웹 서버 취약점 목록 및 요약 (0) | 2025.11.21 |
| DB 복합 인덱스 (0) | 2025.11.20 |
| 단일 서버에서 JWT를 피해야 하는 이유 (0) | 2025.11.19 |
| JWT 장점과 단점 (0) | 2025.11.18 |