오버로딩 (Overloading) 과 오버라이딩 (Overriding) ★★★
by yjym33오버로딩 (Overloading)
오버로딩은 하나의 클래스 내에서 동일한 이름의 메서드를 여러 번 정의하는 것을 의미합니다.
오버로딩은 매개변수의 개수 또는 데이터 유형에 따라 다르게 동작하는 메서드를 생성하는 것을 목적으로 합니다.
자바스크립트와 같은 몇몇 언어에서는 기본적으로 오버로딩을 지원하지 않으며, 오버로딩을 시뮬레이트하기 위해 다른 방법을 사용해야 할 수 있습니다.
class Calculator {
int add(int a, int b) {
return a + b;
}
double add(double a, double b) {
return a + b;
}
}
오버라이딩 (Overriding)
오버라이딩은 상위 클래스(부모 클래스)에서 정의된 메서드를 하위 클래스(자식 클래스)에서 동일한 이름으로 재정의하는 것을 의미합니다.
오버라이딩은 다형성의 핵심 개념으로, 하위 클래스에서 상위 클래스의 메서드를 다시 구현하여 자식 클래스의 특수한 동작을 정의할 수 있습니다.
class Animal {
void makeSound() {
System.out.println("동물이 소리를 낸다.");
}
}
class Dog extends Animal {
@Override
void makeSound() {
System.out.println("멍멍!");
}
}
오버로딩 vs. 오버라이딩
1. 메서드 시그니처:
오버로딩: 메서드 시그니처(매개변수 개수 또는 데이터 유형)가 다른 여러 메서드를 정의합니다.
오버라이딩: 상위 클래스의 메서드와 동일한 메서드 시그니처를 가진 메서드를 하위 클래스에서 재정의합니다.
2. 존재 위치:
오버로딩: 하나의 클래스 내에서 메서드 이름이 동일한 메서드를 정의합니다.
오버라이딩: 상위 클래스와 하위 클래스 간에 메서드를 재정의합니다.
3.적용 범위:
오버로딩: 정적 다형성(Static Polymorphism)을 구현하며, 컴파일 시점에 메서드가 선택됩니다.
오버라이딩: 동적 다형성(Dynamic Polymorphism)을 구현하며, 실행 시점에 메서드가 선택됩니다.
'Development > CS' 카테고리의 다른 글
| 디자인 패턴 ★★★ (0) | 2023.09.24 |
|---|---|
| 추상화란? ★★★ (0) | 2023.09.23 |
| 클래스와 객체 인스턴스의 차이 ★★★ (0) | 2023.09.23 |
| CI/CD(Continuous Integration/Delivery & Deployment) ★★★ (0) | 2023.09.22 |
| 클라우드 - 컨테이너(Container) 와 도커(docker) ★★★ (2) | 2023.09.22 |
블로그의 정보
생각보다 실천을
yjym33