12μ₯μμλ κ°μ²΄μ§ν₯μ ν΅μ¬ λ©μ»€λμ¦ μ€ νλμΈ λ€νμ±μ λν΄ μ€λͺ νλ€. νΉν, λ€νμ± μ€μμ μλΈνμ λ€νμ±μ λν΄ μμλ³΄κ³ λ°νμμ λ©μμ§λ₯Ό μ²λ¦¬ν μ μ ν λ©μλλ₯Ό μ°Ύμ λ μ¬μ©νλ λμ λ©μλ νμ κΈ°λ²μ λν΄ μ μ μλ€.
λ€νμ±μ λ°νμμ λ©μμ§λ₯Ό μ²λ¦¬νκΈ°μ μ ν©ν λ©μλλ₯Ό λμ μΌλ‘ νμνλ κ³Όμ μ ν΅ν΄ ꡬνλλ©°, μμμ μ΄λ° λ©μλλ₯Ό μ°ΎκΈ° μν μΌμ’ μ νμ κ²½λ‘λ₯Ό ν΄λμ€ κ³μΈ΅μ ννλ‘ κ΅¬ννκΈ° μν λ°©λ²μ΄λ€(p.390)
λ€νμ±(Polymorphism)μ΄λ νλμ μΆμ μΈν°νμ΄μ€μ λν΄ μλ‘ λ€λ₯Έ ꡬνμ μ°κ²°ν μ μλ λ₯λ ₯μ΄λ€. μ¦, μ¬λ¬ νμ μ λμμΌλ‘ λμν μ μλ μ½λλ₯Ό μμ±ν μ μλ λ°©λ²μ΄λ€.
λ€νμ±μ μ λλ²μ€ λ€νμ±, μμ λ€νμ±μΌλ‘ λΆλ₯λλ©°, μ λλ²μ€ λ€νμ±μ λ§€κ°λ³μ, ν¬ν¨ λ€νμ±μΌλ‘ λλκ³ , μμ λ€νμ±μ μ€λ²λ‘λ©, κ°μ λ€νμ±μΌλ‘ λλ μ μλ€. νμ§λ§ νν λ€νμ±μ μκΈ°ν λλ ν¬ν¨ λ€νμ±, λλ μλΈνμ λ€νμ±μ λ§νλ€.
ν¬ν¨ λ€νμ±μ λ©μμ§κ° λμΌνλλΌλ μμ ν κ°μ²΄μ νμ μ λ°λΌ μ€μ λ‘ μνλλ νλμ΄ λ¬λΌμ§λ κ²μ λ§νλ€.
κ·Έλ¦¬κ³ μμμ λͺ©μ μ μ¬μ¬μ©μ΄ μλλΌ ν¬ν¨ λ€νμ±μ ꡬνν μ μλ μλΈνμ ꡬνμ΄λ€. μμμ λ ν΄λμ€λ₯Ό μμκ΄κ³λ‘ μ°κ²°(νμ κ³μΈ΅/type hierarchies ꡬμΆ)ν μ μκ² ν΄ μ€λ€. κ·ΈλΌ μμ ν΄λμ€μμ λΆλͺ¨ ν΄λμ€μ λ©μλλ₯Ό μ€λ²λΌμ΄λ©ν ν ν΄λΌμ΄μΈνΈλ λΆλͺ¨ ν΄λμ€λ§ μ°Έμ‘°νλ©΄ ν¬ν¨ λ€νμ±μ ꡬνν μ μλ€.
μμ λ©μ»€λμ¦μ μ΄ν΄νκΈ° μν΄μλ
μ μΌμ€ν (upcasting) : λΆλͺ¨ ν΄λμ€ νμ μΌλ‘ μ μΈλ λ³μμ μμ ν΄λμ€μ μΈμ€ν΄μ€λ₯Ό ν λΉνλ κ²
Lecture lecture = new GradeLecture(...);
λμ λ©μλ νμ : λμ λ©μλ νμμ 1. μλμ μΈ λ©μμ§ μμ, 2. λμ μΈ λ¬Έλ§₯μ μλ¦¬λ‘ κ΅¬μ±λ¨
λμ λ°μΈλ©(dynamic binding) : κ°μ²΄μ§ν₯ μΈμ΄μμ λ©μλλ₯Ό μ€ννλ λ°©λ²μ λ©μμ§λ₯Ό μ μ‘(dispatching)νλ κ². λ©μμ§λ₯Ό μμ νμ λ μ€νλ λ©μλκ° λ°νμμ κ²°μ λλ©°, μ΄λ¬ν λ°©μμ λμ λ°μΈλ© λλ μ§μ° λ°μΈλ©(late binding)μ΄λΌκ³ ν¨
self μ°Έμ‘°(self reference) : μλ°μμλ thisλΌκ³ λΆλ₯Έλ€. λ©μμ§λ₯Ό μμ ν κ°μ²΄λ₯Ό κ°λ¦¬ν€λ©°, λ©μλ νμ κ²½λ‘λ self μ°Έμ‘°λ₯Ό μ΄μ©ν΄ κ²°μ λλ€. λ©μμ§λ₯Ό μμ νλ κ°μ²΄μ ν΄λμ€μ λ°λΌ λ©μλλ₯Ό νμν μμ μμΉκ° λμ μΌλ‘ κ²°μ λ¨
super μ°Έμ‘°(super reference) : λ©μμ§λ₯Ό μ μ‘νλ ν΄λμ€μ λΆλͺ¨ ν΄λμ€μμλΆν° λ©μλ νμμ μμν μ μλλ‘ ν¨
μ λν΄ μ΄ν΄ν μ μμ΄μΌ νλ€.
μ΄λ² μ₯λ μ’ μ¬μΈ μ€ μμλλ° μκ°λ³΄λ€ μ΄λ €μ΄ κ°λ λ€μ΄ λ§μ΄ λμλ μ₯μΈ κ² κ°λ€. κ·Έλ¦¬κ³ μλ° λ¬Έλ²λ μ΅μνμ§ μμ Integer::intValue κ°μ κ²λ€μ΄ λ§μ΄ λμμ λ μ΄λ ΅κ² λκ»΄μ‘λ€.
// TODO
stream, mapToInt, Collections.unmodifiableList λ± κ³΅λΆνκΈ°
μλ°μ€ν¬λ¦½νΈλ ν΄λμ€κ° μ‘΄μ¬νμ§ μκ³ μ€μ§ κ°μ²΄λ§ μ‘΄μ¬νλ νλ‘ν νμ κΈ°λ°μ κ°μ²΄μ§ν₯ μΈμ΄μ΄λ©°, μμμ ꡬννλ λ°©λ²μ κ°μ²΄ μ¬μ΄μ μμμ μ΄μ©νλ κ²μ΄λ€.
'μ€ν°λ > μ€λΈμ νΈ' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[μ€λΈμ νΈ] 14μ₯ 'μΌκ΄μ± μλ νλ ₯' (0) | 2023.01.14 |
---|---|
[μ€λΈμ νΈ] 13μ₯ 'μλΈν΄λμ±κ³Ό μλΈνμ΄ν' (0) | 2023.01.06 |
[μ€λΈμ νΈ] 11μ₯ 'ν©μ±κ³Ό μ μ°ν μ€κ³' (0) | 2022.12.23 |
[μ€λΈμ νΈ] 10μ₯ 'μμκ³Ό μ½λ μ¬μ¬μ©' (0) | 2022.12.16 |
[μ€λΈμ νΈ] 9μ₯ 'μ μ°ν μ€κ³' (0) | 2022.12.09 |
λκΈ