[Dart] λ‹€ν˜•μ„±(Polymorphism)

Sin_BΒ·2023λ…„ 5μ›” 29일
2

Dart

λͺ©λ‘ 보기
6/14

μ§€κΈˆκΉŒμ§€ 코딩을 λ°°μ›Œμ˜€λ©΄μ„œ λ‹€ν˜•μ„±μ΄λž€ 이야기λ₯Ό λ¬Έλ²•μ—μ„œ 많이 λ΄μ™”μŠ΅λ‹ˆλ‹€. μ΄λ²ˆμ—λŠ” λ‹€ν˜•μ„±μ„ λ°°μ›Œ ν•œλ²ˆ 정리λ₯Ό ν•΄λ³ΌκΉŒ ν•©λ‹ˆλ‹€.


πŸ™„β” λ‹€ν˜•μ„±(Polymorphism)이 뭘까?

객체 지ν–₯ ν”„λ‘œκ·Έλž˜λ°μ—μ„œ μ‚¬μš©λ˜λŠ” μ€‘μš”ν•œ κ°œλ…μΈ λ‹€ν˜•μ„±(Polymorphism)은 λ™μΌν•œ μΈν„°νŽ˜μ΄μŠ€λ‚˜ 좔상 클래슀λ₯Ό κ΅¬ν˜„ν–ˆμ§€λ§Œ νƒ€μž…μ΄ λ‹€μ–‘ν•œ 객체λ₯Ό λ™μΌν•˜κ²Œ λ‹€λ£° 수 있게 ν•΄μ£ΌλŠ” λŠ₯λ ₯μž…λ‹ˆλ‹€.

μ’€ 더 μ‰½κ²Œ λ§ν•˜μžλ©΄, μ‘°λ―Έλ£ŒλΌλŠ” ν•˜λ‚˜μ˜ μΉ΄ν…Œκ³ λ¦¬κ°€ μžˆμŠ΅λ‹ˆλ‹€. 이 μ•ˆμ—λŠ” λ§›λ³΄κΈ°λΌλŠ” 행동이 μžˆμŠ΅λ‹ˆλ‹€. 그리고 쑰미료λ₯Ό μƒμ†λ°›λŠ” 섀탕과 μ†ŒκΈˆμ΄ μžˆμŠ΅λ‹ˆλ‹€. 쑰미료λ₯Ό μƒμ†λ°›μ•˜κΈ° λ•Œλ¬Έμ— μ‘°λ―Έλ£Œμ— μžˆλŠ” 맛보기 행동을 각각 섀탕과 μ†ŒκΈˆμ—μ„œ 행동을 ν•˜λ©΄ μ„œλ‘œ λ‹€λ₯Έ 맛이 좜λ ₯λ©λ‹ˆλ‹€. μ„€νƒ•μ—μ„œλŠ” 단맛이, μ†ŒκΈˆμ—μ„œλŠ” 짠맛이 좜λ ₯이 λ©λ‹ˆλ‹€.

μœ„μ˜ μ„€λͺ…κ³Ό 같이 두 가지 λ‹€λ₯Έ νƒ€μž…μ˜ 객체가 λ™μΌν•˜κ²Œ μ‚¬μš©λ˜λŠ” λŠ₯λ ₯을 λ‹€ν˜•μ„±μ΄λΌκ³  ν•©λ‹ˆλ‹€.

λ‹€ν˜•μ„±μ€ 주둜 상속과 μΈν„°νŽ˜μ΄μŠ€λ₯Ό 톡해 κ΅¬ν˜„λ˜λŠ”λ°, μ½”λ“œμ˜ μž¬μ‚¬μš©μ„±κ³Ό μœ μ—°μ„±μ„ λ†’μ—¬μ€λ‹ˆλ‹€.
ν•œ 번 μž‘μ„±ν•œ μ½”λ“œλ₯Ό λ‹€μ–‘ν•œ νƒ€μž…μ˜ 객체에 μ μš©ν•  수 있으며, μƒˆλ‘œμš΄ νƒ€μž…μ΄ μΆ”κ°€λ˜λ”λΌλ„ κΈ°μ‘΄ μ½”λ“œλ₯Ό μˆ˜μ •ν•˜μ§€ μ•Šκ³ λ„ μ‚¬μš©ν•  수 μžˆμŠ΅λ‹ˆλ‹€. 이λ₯Ό 톡해 μ½”λ“œμ˜ μœ μ§€λ³΄μˆ˜μ„±κ³Ό ν™•μž₯성을 ν–₯μƒμ‹œν‚΅λ‹ˆλ‹€.

μƒμ†μ΄λž€ λ¬΄μ—‡μΌκΉŒ? : Dart-Inheritance
μΈν„°νŽ˜μ΄μŠ€μ— λŒ€ν•΄ μ•Œμ•„λ³΄μž : Interface


🌠 ν¬μŠ€νŒ…μ„ 마치며

λŒ€μΆ© 이둠적인 것듀은 μ΄ν•΄ν–ˆλŠ”λ°.. μŠ€νƒ€ν¬λž˜ν”„νŠΈ κ΅¬ν˜„μ΄ λ„ˆλ¬΄ μ–΄λ ΅λ‹€ 흑흑..😭😭

https://github.com/sinbee0402/Flutter/blob/SeSAC/terran.dart
https://github.com/sinbee0402/Flutter/blob/SeSAC/zerg.dart
https://github.com/sinbee0402/Flutter/blob/SeSAC/protoss.dart

profile
| App Developer | μ œκ°€ ν•œ κ°œλ°œμ„ μ½λŠ” μ‚¬λžŒμ΄ μ΄ν•΄ν•˜κΈ° μ‰½κ²Œ μ“°λ €κ³  λ…Έλ ₯ν•©λ‹ˆλ‹€.

0개의 λŒ“κΈ€