Java

나에게.. 다형성이란..?

송코딩 songcoding 2023. 7. 19. 12:22

안녕하세요, 

송아지할때 송아 김송아입니다.

 

 

오늘은 간단하게(?) 다형성에 대해 얘기를 나눠볼까 합니다.

저도 알아요.. 사실 다형성이ㅋㅋㅋ 간단할 수가.... (먼산😇)

 

ㅋㅋㅋㅋㅋ이거 침착맨 만화 맞아요..? @핀터레스트

 

 

그치만, 제가 드리고 싶은 이야기하는 딱 하나이긴 하니까요!ㅎㅎ

⏰ 1분만 시간 내셔서 한번 같이 생각해보실까요?

 

 

다형성(polymorphism)에 대해 위키백과는 다음과 같이 설명하고 있습니다.

프로그래밍 언어의 각 요소들이 다양한 자료형(타입)에 속하는 것이 가능한 것입니다.
반댓말은 단형성으로 한가지 형태만 가질 수 있는 것을 말합니다.

 

 

즉, 하나의 객체가 여러 가지 타입을 가질 수 있는 것 이라고 표현하고 있습니다.

그럼 혹시, 표현을 거꾸로 하여 다음 문장과 같이 표현하는 것은 어떠신가요?

 

 

다형성은, 하나의 타입으로
여러 가지 객체를 사용할 수 있는 것

 

 

김송아 이~녀~석 뭔가 말 장난 하는 거 같은데..? 생각이 드실 수 있겠지만,

방금 얘기 해본 두 문장을 코드로 확인해보겠습니다.

 

// 하나의 객체는 여러가지 타입을 가질 수 있다.
Parent parent = new Child();
Child child = new Child();

// 하나의 타입으로 여러가지 객체를 사용할 수 있다.
Parent parent1 = new Parent();
Parent parent2 = new Child();

 

'아' 다르고, '어' 다른 표현이긴 한데, 이렇게 코드로 놓고 보니 둘 다 할 수 있는 표현 맞죠?

(여러분들은 어떤 표현이 더 맞다고 생각하시는지 궁금하네요🤔)

 

 

어떤 표현이던 간에, 우리는 이 다형성을 생각할 때 쉽게 놓치고 있는 것이 있습니다.

다형성은 단순히 타입 변환만 이해하면 되는 거라고 생각하실 수 있는데요,

 

 

다형성 == 타입 변환?

 

 

맞습니다. 타입 변환이 다 입니다 (반전) ㅋㅋㅋㅋ

 

 

타입 변환은 다형성의 🌸이 맞아요!

그치만, 타입 변환 그 하나만으로는 다형성을 설명하기엔 많이 부족해요.

어쩌면 타입 변환의 꿍꿍이를 깊게 파헤치면 그 답이 될 수도 있겠구요!

 

✔️ 우리가 타입 변환을 어디에 사용할 수 있을지

✔️ 타입 변환을 사용하면 좋은 점이 무엇인지

 

곰곰히 생각해보시고 상속과 오버라이딩, 추상 클래스, 인터페이스... (그.. 그만) 까지 모두 묶어서

다형성을 제대로, 넓게 고민해볼 필요가 있을 것 같네요 😉

 

 

오늘도 여러분의 뇌에서 빛이 나길 바라며,

 

빛나라 지식의 뇌 @iStock

 

 

 

그럼 여러분, 해피 수요일 되시고!

 

비 피해 진짜 없으셔야 하구요, 조심조심 늘 조심하시구!

수도권은 오늘 간만에 맑은 하늘인 것 같으니 산책도 챙겨하시는 그런 하루를 보내셨으면 좋겠습니다.

 

 

감사합니다!

김송아 드림

 

 

👆🏻클릭이 될까?