[C#] 7. override와 overload

Connected Brain·2025년 4월 24일

면접 질문 대비

목록 보기
7/60

override와 overload에 대해 설명해주세요.

한 줄 요약

override : abstract, virtual 한정자를 가진 요소를 자식 클래스에서 구현하는 것
(런타임에서 해당 클래스를 확인했을 때 다형성을 갖게됨 = 런타임 시점 다형성)
overload : 같은 이름의 함수에 대해 받을 수 있는 매개변수의 종류를 구분하여 기능은 갇지만 데이터 타입이나 개수가 다른 경우를 구현할 수 있음
(컴파일 시점에 매개 변수에 따라 다른 메서드를 호출하도록 구분하는 과정을 거짐 = 컴파일 시점 다형성)

override

  • 부모 클래스에서 abstract, virtual한정자를 가진 요소를 자식 클래스에서 구현할 때 override를 통해 재정의하는 것
  • 재정의할 때는 함수의 제한자, 반환 값, 매개변수, 이름이 동일해야함
  • 자식 클래스에서 부모 클래스의 메서드를 재정의해 보다 구체적인 기능을 가지도록 할 수 있음
  • 이는 프로그램 실행 중에 해당 참조 객체의 실제 타입을 확인하여 메서드를 실행하므로 "런타임 시점 다형성"을 가진다고 말함

overload

  • 여러 메서드가 매개변수가 다를 경우 같은 이름으로 여러 개를 사용할 수 있음을 말함
  • 데이터의 타입이나 개수가 다르지만 기능이 같을 경우 오버로드를 통해 쉽게 구현할 수 있음
  • 메서드가 호출되었을 때 매개변수를 통해 컴파일러가 서로 다른 메서드를 호출하기 위해 미리 구분하는 과정을 거치기 때문에 런타임 이전에 다형성을 가지는 "컴파일 시점 다형성"을 가진다고 말함

0개의 댓글