안녕하세요,
송아지할때 송아 김송아입니다.
오늘은 간단하게(?) 다형성에 대해 얘기를 나눠볼까 합니다.
저도 알아요.. 사실 다형성이ㅋㅋㅋ 간단할 수가.... (먼산😇)
그치만, 제가 드리고 싶은 이야기하는 딱 하나이긴 하니까요!ㅎㅎ
⏰ 1분만 시간 내셔서 한번 같이 생각해보실까요?
다형성(polymorphism)에 대해 위키백과는 다음과 같이 설명하고 있습니다.
프로그래밍 언어의 각 요소들이 다양한 자료형(타입)에 속하는 것이 가능한 것입니다.
반댓말은 단형성으로 한가지 형태만 가질 수 있는 것을 말합니다.
즉, 하나의 객체가 여러 가지 타입을 가질 수 있는 것 이라고 표현하고 있습니다.
그럼 혹시, 표현을 거꾸로 하여 다음 문장과 같이 표현하는 것은 어떠신가요?
다형성은, 하나의 타입으로
여러 가지 객체를 사용할 수 있는 것
김송아 이~녀~석 뭔가 말 장난 하는 거 같은데..? 생각이 드실 수 있겠지만,
방금 얘기 해본 두 문장을 코드로 확인해보겠습니다.
// 하나의 객체는 여러가지 타입을 가질 수 있다.
Parent parent = new Child();
Child child = new Child();
// 하나의 타입으로 여러가지 객체를 사용할 수 있다.
Parent parent1 = new Parent();
Parent parent2 = new Child();
'아' 다르고, '어' 다른 표현이긴 한데, 이렇게 코드로 놓고 보니 둘 다 할 수 있는 표현 맞죠?
(여러분들은 어떤 표현이 더 맞다고 생각하시는지 궁금하네요🤔)
어떤 표현이던 간에, 우리는 이 다형성을 생각할 때 쉽게 놓치고 있는 것이 있습니다.
다형성은 단순히 타입 변환만 이해하면 되는 거라고 생각하실 수 있는데요,
다형성 == 타입 변환?
맞습니다. 타입 변환이 다 입니다 (반전) ㅋㅋㅋㅋ
타입 변환은 다형성의 🌸이 맞아요!
그치만, 타입 변환 그 하나만으로는 다형성을 설명하기엔 많이 부족해요.
어쩌면 타입 변환의 꿍꿍이를 깊게 파헤치면 그 답이 될 수도 있겠구요!
✔️ 우리가 타입 변환을 어디에 사용할 수 있을지
✔️ 타입 변환을 사용하면 좋은 점이 무엇인지
곰곰히 생각해보시고 상속과 오버라이딩, 추상 클래스, 인터페이스... (그.. 그만) 까지 모두 묶어서
다형성을 제대로, 넓게 고민해볼 필요가 있을 것 같네요 😉
오늘도 여러분의 뇌에서 빛이 나길 바라며,
그럼 여러분, 해피 수요일 되시고!
비 피해 진짜 없으셔야 하구요, 조심조심 늘 조심하시구!
수도권은 오늘 간만에 맑은 하늘인 것 같으니 산책도 챙겨하시는 그런 하루를 보내셨으면 좋겠습니다.
감사합니다!
김송아 드림
'Java' 카테고리의 다른 글
static 단점, 장점을 스프링에 엮어보자 (35) | 2024.12.13 |
---|---|
[Java][안드로이드][1분 코딩] 오늘 날짜 가져오기 :: 송코딩 (0) | 2022.07.01 |