상세 컨텐츠

본문 제목

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

개발기록/개발스터디

by 도리(Dory) 2021. 1. 12. 18:05

본문

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

 

다형성(Polymorphism)

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

 

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

 

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

 

 

 

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

오버로딩(overloading)

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

 

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

 

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

 

 

오버라이딩(overriding)

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

 

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

 

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

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

'개발기록 > 개발스터디' 카테고리의 다른 글

안드로이드 스튜디오 개발환경설정  (0) 2021.07.05
[iOS] 뷰의 상태 변화 메서드  (0) 2021.03.24
변수 (C언어)  (0) 2020.08.05
La Piscine 2일차 - Git  (0) 2020.07.28
La piscine 1일차 - 쉘프로그래밍  (0) 2020.07.27

관련글 더보기