Search
Duplicate
πŸ˜€

12. ν˜•λ³€ν™˜

νƒœκ·Έ

객체 ν˜•λ³€ν™˜

β€’
객체 μ°Έμ‘°λ³€μˆ˜μ˜ κ²½μš°μ—λ„ ν˜•λ³€ν™˜(Casting)이 이루어진닀.

객체 μ°Έμ‘°λ³€μˆ˜λ“€ κ°„μ˜ λŒ€μž… κ·œμΉ™

β€’
μ™Όμͺ½ ν•­κ³Ό 였λ₯Έμͺ½ ν•­μ˜ 객체 μœ ν˜•μ΄ μ„œλ‘œ λ‹€λ₯Έ 경우 두 μœ ν˜•μ΄ μ„œλ‘œ 상속 관계에 μžˆλ‹€.
β€’
μ™Όμͺ½ 객체가 였λ₯Έμͺ½ 객체의 μƒμœ„ 클래슀인 κ²½μš°μ—λ§Œ λ¬΅μ‹œμ  ν˜•λ³€ν™˜μ΄ μΌμ–΄λ‚œλ‹€.
β€’
μžμ‹ ν΄λž˜μŠ€μ—μ„œ λΆ€λͺ¨ 클래슀 μœ ν˜•μœΌλ‘œ ν• λ‹Ήν•˜λŠ” 것은 κ°€λŠ₯ν•˜μ§€λ§Œ, λ°˜λŒ€μ˜ 경우 λͺ…μ‹œμ  ν˜•λ³€ν™˜μ„ ν•΄μ•Ό ν•œλ‹€.

λΆ€λͺ¨ 클래슀 μœ ν˜•μ„ μžμ‹ 클래슀 μœ ν˜•μœΌλ‘œ κ°•μ œ ν˜•λ³€ν™˜

β€’
ν• λ‹Ήλ˜λŠ” μΈμŠ€ν„΄μŠ€ μœ ν˜•μ— λ”°λΌμ„œ μ‹€ν–‰ 였λ₯˜κ°€ λ°œμƒν•  수 μžˆλ‹€.
β—¦
λ‚΄λΆ€ νŠΉμ • 클래슀 ν˜•μ΄ λ‹€λ₯Έ ν΄λž˜μŠ€ν˜•μœΌλ‘œ λ³€ν™˜λ  수 μžˆλŠ”μ§€ νŒλ‹¨ν•΄μ•Όν•¨
β€’
instanceof μ—°μ‚°μžλ₯Ό μ‚¬μš©ν•œλ‹€.
β—¦
μƒμ„±λœ 객체가 class와 κ΄€κ³„μžˆλŠ” ν˜•(type)으둜 λ§Œλ“€μ–΄μ‘ŒλŠ”μ§€ 확인
β—¦
true λ˜λŠ” false λ°˜ν™˜

λ¬΅μ‹œμ  ν˜•λ³€ν™˜μ˜ μ˜ˆμ‹œ

β€’
λͺ…λ Ήν–‰ λ§€κ°œλ³€μˆ˜κ°€ "A사"이면 S_TV 객체가 λ¦¬ν„΄λ˜κ³ , "B사"이면 L_TV 객체가 리턴됨
β€’
S_TV, L_TV ν΄λž˜μŠ€λŠ” TV 클래슀의 μžμ‹ ν΄λž˜μŠ€μž„
β—¦
TV ν΄λž˜μŠ€λ“€μ˜ μ΅œμƒμœ„ λΆ€λͺ¨μΈ TV νƒ€μž…μ˜ λ³€μˆ˜λ‘œ 받을 수 있음

ν˜•λ³€ν™˜κ³Ό 멀버 λ³€μˆ˜

β€’
ν˜•λ³€ν™˜μ— μ°Έμ—¬ν•œ μ„œλ‘œ 상속 관계에 μžˆλŠ” 두 클래슀 κ°„μ—λŠ” λ™μΌν•œ μ΄λ¦„μ˜ λ³€μˆ˜κ°€ μ‘΄μž¬ν•˜κ±°λ‚˜, λ©”μ„œλ“œκ°€ Overriding λ˜μ–΄ μžˆμ„ 수 μžˆλ‹€.
β€’
μƒμ„±λœ 객체 λ³€μˆ˜λ₯Ό 톡해 멀버에 μ ‘κ·Όν•  λ•Œ μ£Όμ˜ν•΄μ•Όν•œλ‹€.
β—¦
λ³€μˆ˜μ— λŒ€ν•œ 접근은 객체의 μœ ν˜•μ— μ˜ν•΄ κ²°μ •λœλ‹€.
β—¦
λ©”μ„œλ“œ ν˜ΈμΆœμ€ ν• λ‹Ήλ˜λŠ” μΈμŠ€ν„΄μŠ€μ— μ˜ν•΄ κ²°μ •λœλ‹€.
β—¦
β€”> μ΄λŠ” μ°Έμ‘° 관계λ₯Ό κ²°μ •ν•˜λŠ” μ‹œκ°„μ΄ λ‹€λ₯΄κΈ° λ•Œλ¬Έμ— λ‚˜νƒ€λ‚˜λŠ” 차이이닀.