반응형
✅ 오버라이딩 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)
'Java > 자바 정리' 카테고리의 다른 글
61. 자동 타입 변환 (Promotion) - 상속 관계에서의 업캐스팅 (0) | 2025.05.07 |
---|---|
60. protected 접근 제한자 - 상속과 패키지에 따른 접근 제어 (0) | 2025.05.07 |
59. final 메서드 – 오버라이딩을 금지하기 (0) | 2025.05.07 |
58. super 키워드로 부모 메서드 호출하기 (오버라이딩 활용) (0) | 2025.05.02 |
57. 메서드 오버라이딩(Method Overriding) (0) | 2025.05.02 |
56. super(...)를 통한 부모 생성자 호출 (0) | 2025.05.02 |