오버로딩(Overloading)과 오버라이딩(Overriding)은 객체 지향 프로그래밍에서 중요한 개념입니다. 둘 다 다형성(polymorphism)을 구현하는 방법 중의 하나이지만 서로 다른 의미와 사용 방법을 갖고 있습니다.
- 오버로딩 (Overloading):
- 오버로딩은 같은 이름의 메서드나 함수를 여러 개 정의하되, 매개변수의 개수, 타입 또는 순서가 다르도록 하는 것입니다.
- 동일한 이름의 메서드를 여러 개 선언하여, 각각 다른 매개변수를 받아들일 수 있도록 합니다.
- 컴파일러는 오버로딩된 메서드를 호출할 때 전달된 매개변수에 따라 적합한 메서드를 선택합니다.
- 예를 들어, 같은 이름의 함수가 숫자형 매개변수를 받는 경우와 문자열을 받는 경우를 오버로딩하여 다르게 처리할 수 있습니다.
- 오버라이딩 (Overriding):
- 오버라이딩은 부모 클래스(상위 클래스)의 메서드를 하위 클래스에서 재정의하는 것을 말합니다.
- 상속 관계에서 하위 클래스는 부모 클래스의 메서드를 동일한 시그니처(메서드 이름, 매개변수, 반환 유형)로 다시 구현할 수 있습니다.
- 부모 클래스의 메서드를 자식 클래스에서 오버라이드하여, 자식 클래스의 객체가 해당 메서드를 호출할 때 자식 클래스에서 재정의한 내용이 실행됩니다.
- 이를 통해 다형성을 구현하여, 동일한 메서드 호출이 객체의 실제 유형에 따라 다르게 동작하도록 할 수 있습니다.
오버로딩은 같은 이름의 다수의 메서드를 정의하여 다양한 매개변수를 처리하는 것이고, 오버라이딩은 상속 관계에서 부모 클래스의 메서드를 자식 클래스에서 재정의하여 다양한 동작을 구현하는 것입니다.
'CS' 카테고리의 다른 글
| 디자인 패턴을 사용하는 이유 (1) | 2023.11.20 |
|---|---|
| 인터페이스와 추상클래스의 차이 (1) | 2023.11.20 |
| 서로 다른 성능을 가진 기기에서 Update 사용 시 주의할 점 (0) | 2023.11.20 |
| 상속이란 (0) | 2023.11.16 |
| 객체지향이란 (0) | 2023.11.16 |