2025-08-09 12:57
Tags: 소프트웨어 공학
오버로딩(Overloading)
-
같은 이름의 작업 처리하는데 데이터 종류와 갯수 다른 경우
-
더하기 만드는데 정수끼리냐 실수끼리냐 섞이냐 문자열끼리냐 여러개냐 등등 다양한 상황 발생
-
인자가 달라질때마다 매번 다른 함수 정의하면 직관적이지도 않고 너무 복잡해짐
-
함수의 이름은 공유하되 인자의 타입에 따라 다르게 작동하도록 구현
-
하나의 이름에 여러 기능을 쌓는다.(Overloading), 과하게 쌓는다.
-
이를 통해 하나의 함수가 여러 일을 할 수 있는 다형성도 가능
구분 | 오버로딩 (Overloading) | 오버라이딩 (Overriding) |
---|---|---|
정의 | 같은 이름, 다른 시그니처의 함수를 여러 개 정의 | 부모 클래스의 메서드를 자식 클래스에서 재정의 |
관계 | 같은 클래스 내에서 발생 | 상속 관계의 부모-자식 클래스 간에 발생 |
목적 | 이름 하나로 다양한 기능 제공 (사용 편의성) | 부모의 기능을 자식에 맞게 변경 (다형성 구현) |
시그니처 | 반드시 달라야 함 (매개변수 개수, 타입 등) | 반드시 같아야 함 (이름, 매개변수, 반환 타입) |
결정 시점 | **컴파일 타임(Compile-time)**에 결정 | **런타임(Run-time)**에 결정 |
별칭 | 정적 다형성 (Static Polymorphism) | 동적 다형성 (Dynamic Polymorphism) |