오늘은 객체지향 프로그래밍 관련 면접 단골 질문인 다형성(polymorphism), 오버라이딩(overriding), 오버로딩(overloading)에 대해 그 의미를 알아보자!
다형성은 여러가지 형태를 가지고 있다는 의미로 하나의 메세지에 대해 여러가지 형태의 응답이 있다는 것을 의미한다.
다형성은 메세지에 의해 객체(클래스)가 연산을 수행하게 될 때 하나의 메세지에 대해 각각의 객체(클래스)가 가지고 있는 고유한 방법(특성)으로 응답할 수 있는 능력을 의미한다.
다음은 둘이 이름이 비슷해서 많이 헷갈리는 오버라이딩, 오버로딩이다.
같은 클래스 내에서 같은 이름의 매서드를 사용하는 것
overloading : 과적하다, 너무 많이 주다, 과부하
같은 클래스 내에서 같은 이름의 매서드를 사용하기 때문에, 매개변수 타입이나 매개변수의 개수가 달라야 한다.
부모 클래스에서 정의한 매서드를 자식 클래스에서 변경하는 것
overriding : 다른 무엇보다 더 중요한
부모 클래스에서 정의된 매서드가 있을 때,
부모 클래스를 상속받는 자식 클래스에서 그 매서드를 재정의하는 것을 말한다.
나의 첫번째 C++ 프로그램 (2) | 2024.02.13 |
---|---|
C++ 컴파일 과정 (1) | 2024.02.13 |