상세 컨텐츠

본문 제목

다형성(Polymorphism), 오버라이딩(overriding), 오버로딩(overloading) 의 개념

Tech/프로그래밍

by 테크투아트 2021. 1. 12. 18:05

본문

오늘은 객체지향 프로그래밍 관련 면접 단골 질문인 다형성(polymorphism), 오버라이딩(overriding), 오버로딩(overloading)에 대해 그 의미를 알아보자!

 

다형성(Polymorphism)

다형성은 여러가지 형태를 가지고 있다는 의미로 하나의 메세지에 대해 여러가지 형태의 응답이 있다는 것을 의미한다.

 

다형성은 메세지에 의해 객체(클래스)가 연산을 수행하게 될 때 하나의 메세지에 대해 각각의 객체(클래스)가 가지고 있는 고유한 방법(특성)으로 응답할 수 있는 능력을 의미한다.

 

  • 객체(클래스)들은 동일한 메소드명을 사용하며 같은 의미의 응답을 한다.
  • '+' 연산자의 경우 숫자 클래스에서는 덧셈, 문자 클래스에서는 문자열의 연결 기능으로 사용한다.

 

 

 

다음은 둘이 이름이 비슷해서 많이 헷갈리는 오버라이딩, 오버로딩이다.

오버로딩(overloading)

같은 클래스 내에서 같은 이름의 매서드를 사용하는 것

 

overloading : 과적하다, 너무 많이 주다, 과부하

 

같은 클래스 내에서 같은 이름의 매서드를 사용하기 때문에, 매개변수 타입이나 매개변수의 개수가 달라야 한다.

 

 

오버라이딩(overriding)

부모 클래스에서 정의한 매서드를 자식 클래스에서 변경하는 것

 

overriding : 다른 무엇보다 더 중요한

 

부모 클래스에서 정의된 매서드가 있을 때,

부모 클래스를 상속받는 자식 클래스에서 그 매서드를 재정의하는 것을 말한다. 

'Tech > 프로그래밍' 카테고리의 다른 글

나의 첫번째 C++ 프로그램  (2) 2024.02.13
C++ 컴파일 과정  (1) 2024.02.13

관련글 더보기