[Java] 다형성 이해하기

wakeup Lee·2023년 3월 21일
0

자바

목록 보기
4/6
post-thumbnail

다형성의 사전적인 의미
프로그램 언어의 다형성은 그 프로그래밍 언어의 자료형 체계의 성질을 나타내는 것으로, 프로그램 언어의 각 요소들이 다양한 자료형에 속하는 것이 허가되는 성질을 가리킨다. 반댓말은 단형성으로, 프로그램 언어의 각 요소가 한 가지 형태만 가지는 성질을 가리킨다.

다형성이란?

유연하고 변경에 용이한 것이다.

유연하고 변경에 용이하다?🤔
다음은 다형성의 예로 가장 많이 사용되는 운전자와 자동차의 관계도다.

위에 사진에서 운전자라는 역할(클라이언트)과 자동차라는 역할(인터페이스), 자동차를 구현한 구현체가 존재한다.

  • 역할은 추상적인 개념으로 자동차의 역할을 K3나 아반떼, 모델3가 대체할 수 있다. (변경에 용이)
  • 운전자는 어떤 차를 타던 운전하는 데는 변함이 없다. (유연)
  • 운전자는 자동차의 역할(인터페이스)만 알면된다.
  • 운전자는 어떤 차종(구현체)인지 몰라도 된다.
  • 운전자는 차종(구현체)이 변경되어도 운전에 영향을 받지 않는다.

자동차의 역할

  1. 앞으로 나아가기
  2. 멈추기
  3. 뒤로 후진하기

운전자의 역할

  1. 악셀 밟기
  2. 브레이크 밟기
  3. 차에 타기

[참고자료]
인프런-스프링 핵심원리 기본편(김영한님 강의)

profile
백엔드 개발자

0개의 댓글