Java/자바 정리
[ 간단 정리 57+ ] 자바, 오버라이딩과 오버로딩의 차이점
코딩하는냥이
2025. 5. 7. 10:19
반응형
✅ 오버라이딩 vs 오버로딩 차이 정리표
구분 | 오버라이딩 (Overriding) | 오버로딩 (Overloading) |
의미 | 상속받은 메서드를 재정의 | 같은 이름의 메서드를 여러 형태로 정의 |
적용 대상 | 상속된 메서드 | 같은 클래스 내 |
매개변수 | 동일해야 함 | 매개변수 수나 타입이 달라야 함 |
반환타입 | 동일하거나 자식 타입 | 상관 없음 |
접근 제한자 | 부모보다 좁아지면 안 됨 | 상관 없음 |
대표 키워드 | @Override | 없음 (자동 판별) |
사용 목적 | 부모 클래스의 기능을 자식이 바꿔 쓰기 위해 | 같은 기능을 다양한 형태로 쓰기 위해 |
📌 오버라이딩 예제 (상속에서 재정의)
class Animal {
void sound() {
System.out.println("동물이 소리를 냅니다.");
}
}
class Dog extends Animal {
@Override
void sound() {
System.out.println("멍멍!");
}
}
👉 Dog 클래스는 Animal의 sound() 메서드를 재정의(Override) 해서 자식만의 동작을 하게 만듭니다.
📌 오버로딩 예제 (같은 이름, 다른 매개변수)
class Calculator {
int add(int a, int b) {
return a + b;
}
double add(double a, double b) {
return a + b;
}
int add(int a, int b, int c) {
return a + b + c;
}
}
👉 모두 add() 라는 같은 이름의 메서드지만, 매개변수의 수나 타입이 달라서 다른 메서드로 구분됩니다.
💡 포인트 정리
포인트 | 오버라이딩 | 오버로딩 |
어디서? | 상속 관계에서 | 같은 클래스 안에서 |
왜 써? | 부모 기능을 내 방식대로 바꾸기 | 다양한 입력에 유연하게 대응 |
😆 연관된 글
46. 메서드 오버로딩(Method Overloading)
57. 메서드 오버라이딩(Method Overriding)