본문 바로가기
소프트웨어 공학 용어 정리

오버로딩(Overloading), 오버라이딩(Overriding)

by minhyeok.lee 2024. 10. 21.
반응형

오버로딩(Overloading) vs 오버라이딩(Overriding)

오버로딩(Overloading)과 오버라이딩(Overriding)은 객체 지향 프로그래밍에서 중요한 개념이다.


오버로딩 (Overloading)

1. 정의

같은 이름의 메서드를 여러 개 정의하되, 매개변수의 타입이나 개수가 다르게 정의하는 것이다.


2. 목적

메서드 이름을 재사용하여 코드의 가독성을 높이고, 다양한 입력에 대해 같은 기능을 수행하도록 한다.


3. 예시

class MathUtil {
    int add(int a, int b) { return a + b; }
    double add(double a, double b) { return a + b; }
}

 


오버라이딩 (Overriding)

1. 정의

상위 클래스에서 정의된 메서드를 하위 클래스에서 재정의하는 것이다.


2. 목적

상위 클래스의 기능을 하위 클래스에 맞게 수정하거나 확장하기 위해 사용한다.


3. 예시

class Animal {
    void sound() { System.out.println("Animal makes a sound"); }
}

class Dog extends Animal {
    @Override
    void sound() { System.out.println("Bark"); }
}

 


요약

1. 오버로딩: 같은 이름의 메서드가 매개변수의 타입이나 개수로 구분된다.

2. 오버라이딩: 상위 클래스의 메서드를 하위 클래스에서 재정의한다.

반응형

댓글