λ€νμ±( Polymorphism )
λ€νμ±?
λ€νμ±μ΄ λκΉ?
λ€νμ±μ μλ¬Όνμμλ μ μκ° λμ΄ μμ§λ§,
μ°λ¦¬λ ITλΆμΌμ΄λ―λ‘ μ»΄ν¨ν° κ³Όνμμ μ μλ λ΄μ©μ 보μ
κ·Έ νλ‘κ·Έλλ° μΈμ΄μ μλ£ν 체κ³μ μ±μ§μ λνλ΄λ κ²μΌλ‘,
νλ‘κ·Έλ¨ μΈμ΄μ κ° μμλ€(μμ, λ³μ, μ, μ€λΈμ νΈ, ν¨μ, λ©μλ λ±)μ΄
λ€μν μλ£ν(type)μ μνλ κ²μ΄ νκ°λλ μ±μ§μ κ°λ¦¬ν¨λ€.
λ무 μ΄λ ΅κ² μ μλμ΄μλλ°
μ½κ² λ§ν΄μ νλμ μ΄λ¦μΌλ‘ μ¬λ¬ κΈ°λ₯μ νλκ²μ΄ λ°λ‘ λ€νμ±μ΄λ€.
μ΄λ κ°μ²΄μ§ν₯ μΈμ΄μμ λΉ μ§ μ μλ κ°λ μΌλ‘
μμ, μΊ‘μνμ ν¨κ» 3λ νΉμ§ μ€ νλ μ΄λ€.
λ€νμ±μ΄ μ μ©λ κ³³μ μλ°(JAVA)λ‘ μλ₯Ό λ€μ΄ 보면
μ€λ²λΌμ΄λ©(Overriding)κ³Ό μ€λ²λ‘λ©(Overloading)μ
μ΄λ κ°μ²΄μ§ν₯ μΈμ΄λ μ‘΄μ¬ν κ²μ΄κ³ ,
μλ°μλ μ½λμ μ 맀ν¨μ νΌνκΈ° μν΄
λ€μ€μμμ μ§μνμ§ μκ³
μΈν°νμ΄μ€λ₯Ό ν΅ν΄μ μΌλΆλΆ μ§μνκ³ μλλ°
μ΄ μΈν°νμ΄μ€λ λ€νμ±μ΄ μ μ©λ κ²μ΄κ³ ,
μΈν°νμ΄μ€μ λλΆμ΄ μΆμν΄λμ€ λν λ€νμ±μ΄ μ μ©λ κ²μ€ νλλ€.
λ€νμ± μμ½
μ μ : νλμ μ΄λ¦μΌλ‘ μ¬λ¬ κΈ°λ₯μ νλκ²
μ μ©λ κ³³ (JAVA / μλ°)
1) μ€λ²λΌμ΄λ© (Overriding)
2) μ€λ²λ‘λ© (Overloading)
3) μΆμν΄λμ€ (Abstract Class)
4) μΈν°νμ΄μ€ (Interface)
μ΄μμΌλ‘ κ°μ²΄μ§ν₯μ 3λ νΉμ§ μ€ νλμΈ
λ€νμ±μ λν΄ κ°λ¨νκ² μ 리νλ€.