🔄 오버로딩(Overloading)과 오버라이딩(Overriding)


🧩 오버로딩(Overloading) — 같은 이름, 다른 매개변수

✅ 정의

같은 클래스 내에서 같은 이름의 메서드매개변수만 다르게 여러 개 정의하는 것

🎯 특징

🧑‍🍳 실생활 비유

"주문(order)"이라는 기능은 같지만, 커피만 주문하거나, 커피+케이크를 주문하거나, 테이크아웃 여부까지 정하는 다양한 방법이 있는 것처럼, 메서드 이름은 같되 인자의 구성이 다를 수 있습니다.

🧑‍💻 예시 코드

public 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;
    }
}


🧩 오버라이딩(Overriding) — 같은 이름, 같은 매개변수, 다르게 동작

✅ 정의

상속받은 메서드를 자식 클래스에서 재정의하는 것

🎯 특징