호빵의 IT 개발소

오버로딩과 오버라이딩의 차이점은? 본문

CS(전공지식)/기술면접 준비

오버로딩과 오버라이딩의 차이점은?

호빵Stack 2025. 3. 28. 22:21
오버로딩(Overloading)
  • 같은 이름의 함수를 매개변수의 타입, 개수로 구분
  • 컴파일 시점에 결정 (정적 바인딩)
  • 한 클래스 내에서 다형성을 제공
  • 예: void func(int), void func(double)
오버라이딩(Overriding)
  • 상속 관계에서 부모 클래스의 함수를 자식 클래스가 재정의
  • 런타임 시점에 결정 (동적 바인딩, 가상 함수 필요)
  • 다형성(Polymorphism) 구현에 사용
차이점 요약
  • 오버로딩은 같은 이름, 다른 시그니처 / 오버라이딩은 같은 시그니처, 다른 구현
  • 오버로딩은 컴파일 시점, 오버라이딩은 실행 시점에 결정
  • 오버라이딩은 상속 필수, 오버로딩은 같은 클래스 내에서 가능

 

 

면접 스타일 답변 예시:

오버로딩은 함수 이름은 같지만 매개변수의 타입이나 개수가 다른 함수를 여러 개 정의하는 것이며 컴파일 타임에 어떤 함수가 호출될지 결정됩니다. 반면 오버라이딩은 상속 관계에서 부모 클래스의 함수를 자식 클래스가 같은 시그니처로 재정의하는 것으로 런타임에 호출될 함수가 결정됩니다.
Comments