오버라이딩(Overriding)과 오버로딩(Overloading)은 객체 지향 프로그래밍에서 메서드 다형성을 구현하는 두 가지 다른 개념입니다.
- 오버라이딩(Overriding):
- 오버라이딩은 상속 관계에서 부모 클래스의 메서드를 자식 클래스에서 재정의하는 것을 의미합니다.
- 오버라이딩은 메서드 이름, 매개변수 리스트 및 반환 타입이 부모 클래스의 메서드와 동일해야 합니다.
- 오버라이딩된 메서드는 부모 클래스의 메서드보다 접근 제어자를 더 좁은 범위로 변경할 수 있습니다(예: 부모 클래스의 메서드가 public이면 자식 클래스에서는 protected 또는 private으로 변경 가능).
- 오버라이딩은 런타임 시에 호출되는 메서드가 결정되므로 동적 바인딩(dynamic binding)이라고도 합니다.
- 주로 다형성을 구현하는 데 사용됩니다.
- 오버로딩(Overloading):
- 오버로딩은 같은 이름의 메서드를 여러 개 정의하는 것을 의미합니다. 이 때 메서드들은 매개변수의 타입, 개수, 순서가 서로 달라야 합니다.
- 오버로딩된 메서드는 같은 이름을 가지지만 서로 다른 시그니처를 가지며, 반환 타입이나 접근 제어자는 오버로딩의 조건에 영향을 주지 않습니다.
- 오버로딩은 컴파일 시에 호출될 메서드가 결정되므로 정적 바인딩(static binding)이라고도 합니다.
- 주로 같은 기능을 수행하지만 서로 다른 매개변수를 받는 메서드를 구현할 때 사용됩니다.
간단히 말하자면, 오버라이딩은 같은 메서드 이름을 가진 메서드들 중에서 실제로 호출될 메서드를 결정하는 데 사용되며, 오버로딩은 같은 이름을 가진 여러 메서드들을 정의하는 데 사용됩니다.
'면접준비' 카테고리의 다른 글
트랜젝션이란? (0) | 2024.02.01 |
---|---|
세션 기반 인증과 토큰 기반 인증의 차이에 대해 설명해주세요. (0) | 2024.01.29 |
AWS S3, EC2를 사용하는 이유와 사용 경험에 대해서 답변해주세요. (0) | 2024.01.29 |
Array, LinkedList에 대해 설명해주시고 각각 어떻게 사용하는지 말씀해주세요. (1) | 2024.01.26 |
테스트코드에 대해서 아는대로 설명해주시고 활용 경험에 대해서 답변해주세요. (0) | 2024.01.26 |