2025-08-09 12:57

Tags: 소프트웨어 공학

오버로딩(Overloading)

  • 같은 이름의 작업 처리하는데 데이터 종류와 갯수 다른 경우

  • 더하기 만드는데 정수끼리냐 실수끼리냐 섞이냐 문자열끼리냐 여러개냐 등등 다양한 상황 발생

  • 인자가 달라질때마다 매번 다른 함수 정의하면 직관적이지도 않고 너무 복잡해짐

  • 함수의 이름은 공유하되 인자의 타입에 따라 다르게 작동하도록 구현

  • 하나의 이름에 여러 기능을 쌓는다.(Overloading), 과하게 쌓는다.

  • 이를 통해 하나의 함수가 여러 일을 할 수 있는 다형성도 가능

  • 오버로딩은 새버전 추가, 오버라이딩은 기존 버전 덮어쓰기

구분오버로딩 (Overloading)오버라이딩 (Overriding)
정의같은 이름, 다른 시그니처의 함수를 여러 개 정의부모 클래스의 메서드를 자식 클래스에서 재정의
관계같은 클래스 내에서 발생상속 관계의 부모-자식 클래스 간에 발생
목적이름 하나로 다양한 기능 제공 (사용 편의성)부모의 기능을 자식에 맞게 변경 (다형성 구현)
시그니처반드시 달라야 함 (매개변수 개수, 타입 등)반드시 같아야 함 (이름, 매개변수, 반환 타입)
결정 시점**컴파일 타임(Compile-time)**에 결정**런타임(Run-time)**에 결정
별칭정적 다형성 (Static Polymorphism)동적 다형성 (Dynamic Polymorphism)

References

다형성 오버라이딩