기술면접 - 오버로딩과 오버라이딩의 차이점을 설명해주세요.
작성자 정보
- 마스터 작성
- 작성일
본문
Q - 오버로딩과 오버라이딩의 차이점을 설명해주세요.
A -
오버로딩은 같은 이름의 매서드를 기능을 다르게 정의 하는 것
오버라이딩은 부모의 매서드의 기능을 재정의 하는 것
[GPT]
오버로딩(Overloading)과 오버라이딩(Overriding)은 객체지향 프로그래밍에서 중요한 개념으로, 비슷해 보일 수 있지만 서로 다른 목적과 기능을 가집니다.
오버로딩 (Overloading)
오버로딩은 같은 이름의 메서드를 여러 개 정의하는 것을 의미하지만, 메서드의 시그니처(매개변수의 타입, 개수, 순서)가 서로 다른 경우에 가능합니다. 즉, 같은 이름을 가진 여러 메서드가 다른 매개변수를 가질 수 있도록 하는 기능입니다. 오버로딩을 사용하면 같은 작업을 수행하지만, 다른 매개변수를 받는 메서드를 여러 개 만들 수 있습니다.
- 목적: 메서드의 이름을 재사용하여 사용자에게 일관된 인터페이스를 제공합니다.
- 특징: 메서드 이름은 같지만, 매개변수의 타입, 개수, 순서가 다릅니다.
- 사용: 컴파일 시간에 결정됩니다(정적 바인딩).
오버라이딩 (Overriding)
오버라이딩은 상속 관계에 있는 부모 클래스로부터 상속받은 메서드를 자식 클래스에서 재정의하는 것을 의미합니다. 오버라이딩을 통해 상속받은 메서드의 동작을 자식 클래스에 맞게 변경할 수 있습니다. 메서드의 시그니처는 동일해야 하며, 접근 제한자와 예외 처리를 포함한 메서드의 선언부는 부모 클래스의 메서드와 일치해야 합니다.
- 목적: 상속받은 메서드의 동작을 자식 클래스에서 변경하여 사용합니다.
- 특징: 메서드의 시그니처는 동일하며, 부모 클래스의 메서드를 자식 클래스에서 재정의합니다.
- 사용: 실행 시간에 결정됩니다(동적 바인딩).
차이점 요약
- 오버로딩은 같은 이름의 메서드를 매개변수의 차이를 두어 여러 번 정의하는 것이고, 오버라이딩은 상속받은 메서드의 동작을 변경하기 위해 재정의하는 것입니다.
- 오버로딩은 컴파일 시간에 결정되는 반면, 오버라이딩은 실행 시간에 결정됩니다.
- 오버로딩은 메서드의 시그니처가 달라야 하고, 오버라이딩은 메서드의 시그니처가 같아야 합니다.
이 두 기능은 객체지향 프로그래밍에서 코드의 재사용성과 유지보수성을 높이는 데 중요한 역할을 합니다.
관련자료
-
이전
-
다음
댓글 0
등록된 댓글이 없습니다.