7-2μμ(νμ λ³νκ³Ό λ€νμ±)
λ€νμ± : λ€νμ±μ μ¬μ© λ°©λ²μ λμΌνμ§λ§ λ€μν κ°μ²΄λ₯Ό μ΄μ©ν΄μ λ€μν μ€νκ²°κ³Όκ° λμ€λλ‘ νλ μ±μ§μ΄λ€. μλ₯Ό λ€μ΄ μλμ°¨κ° νμ΄μ΄λ₯Ό μ¬μ©νλ λ°©λ²μ λμΌνμ§λ§ μ΄λ€ νμ΄μ΄λ₯Ό μ¬μ©(μ₯μ°©)νλλμ λ°λΌ μ£Όν μ±λ₯μ΄ λ¬λΌμ§ μ μλ€.
*λ€νμ± κ΅¬ν
λ©μλ μ¬μ μ + νμ λ³ν
μλ νμ λ³ν : νλ‘κ·Έλ¨ μ€ν λμ€μ μλμ μΌλ‘ νμ λ³νμ΄ μΌμ΄λλ κ²μ λ§νλ€.
ex)
λΆλͺ¨νμ λ³μ = μμ νμ ;
νμ λ³νμ΄λ νμ μ λ€λ₯Έ νμ μΌλ‘ λ³ννλ νμλ₯Ό λ§νλ€. ν΄λμ€λ κΈ°λ³Ένμ λ³νκ³Ό κ°μ΄ νμ λ³νμ΄ μλλ°, ν΄λμ€μ λ³νμ μμ κ΄κ³μ μλ ν΄λμ€ μ¬μ΄μμ λ°μνλ€. μμμ λΆλͺ¨ νμ μΌλ‘ μλ νμ λ³νμ΄ κ°λ₯νλ€.
ex)
Animal ν΄λμ€ (λΆλͺ¨)
Cat ν΄λμ€ (μμ)
Cat cat = new Cat();
Animal animal = cat; or Animal animal = new Cat();
*λ°λ‘ μμ λΆλͺ¨κ° μλλλΌλ μμ κ³μΈ΅μμ μμ νμ μ΄λΌλ©΄ μλ νμ λ³νμ΄ μΌμ΄λ μ μλ€.
ν΄λμ€ μλ νμ λ³ν ν μ¬μ©
λΆλͺ¨ νμ μΌλ‘ μλ νμ λ³νλ μ΄νμλ λΆλͺ¨ ν΄λμ€μ μ μΈλ νλμ λ©μλλ§ μ κ·Όμ΄ κ°λ₯νλ€.
*μμΈκ° μλλ°, λ©μλκ° μμ ν΄λμ€μμ μ¬μ μ(μ€λ²λΌμ΄λ©) λμλ€λ©΄ μμ ν΄λμ€μ λ©μλκ° λμ νΈμΆλλ€.
νλμ λ€νμ±
νλμ νμ μ λΆλͺ¨ νμ μΌλ‘ μ μΈνλ©΄ λ€μν μμ κ°μ²΄λ€μ΄ μ μ₯λ μ μκΈ° λλ¬Έμ νλ μ¬μ© κ²°κ³Όκ° λ¬λΌμ§ μ μλ€. μ΄λ₯Ό νλμ λ€νμ±μ΄λΌκ³ νλ€.
λ€νμ±μ ꡬνν μ μλ κΈ°μ μ 쑰건
1. λΆλͺ¨ ν΄λμ€λ₯Ό μμνλ μμ ν΄λμ€λ λΆλͺ¨κ° κ°μ§κ³ μλ νλμ λ©μλλ₯Ό κ°μ§κ³ μμΌλ μ¬μ© λ°©λ²μ΄ λμΌνλ€.
2. μμ ν΄λμ€λ λΆλͺ¨μ λ©μλλ₯Ό μ¬μ μν΄μ λ©μλμ μ€ν λ΄μ©μ λ³κ²½ν¨μΌλ‘μ¨ λ μ°μν μ€νκ²°κ³Όκ° λμ€κ² ν μ μλ€.
3. μμ νμ μ λΆλͺ¨ νμ μΌλ‘ λ³νν μ μλ€.
λ§€κ° λ³μμ λ€νμ±
μλ νμ λ³νμ νλμ κ°μ λμ ν λμλ λ°μνμ§λ§, μ£Όλ‘ λ©μλλ₯Ό νΈμΆν λ λ§μ΄ λ°μνλ€. λ©μλλ₯Ό νΈμΆν λμλ λ§€κ° λ³μμ νμ κ³Ό λμΌν λ§€κ°κ°μ μ§μ νλ κ²μ΄ μ μμ΄μ§λ§, λ§€κ°κ°μ λ€μννκΈ° μν΄ λ§€κ° λ³μμ μμ κ°μ²΄λ₯Ό μ§μ ν μλ μλ€.
κ°μ νμ λ³ν
κ°μ νμ λ³ν(casting)μ λΆλͺ¨ νμ μ μμ νμ μΌλ‘ λ³ννλ κ²μ λ§νλ€. κ·Έλ λ€κ³ ν΄μ λͺ¨λ λΆλͺ¨ νμ μ μμ νμ μΌλ‘ κ°μ λ³νν μ μλ κ²μ μλλ€. μμ νμ μ΄ λΆλͺ¨ νμ μΌλ‘ μλ νμ λ³νν ν λ€μ μμ νμ μΌλ‘ λ³νν λ κ°μ νμ λ³νμ μ¬μ©ν μ μλ€.
ex)
Parent parent = new Child();
Child child = (Child) parent;
κ°μ²΄ νμ νμΈ
λΆλͺ¨ λ³μκ° μ°Έμ‘°νλ κ°μ²΄κ° λΆλͺ¨ κ°μ²΄μΈμ§ μμ κ°μ²΄μΈμ§ νμΈνλ λ°©λ²μ μ΄λ€ κ°μ²΄κ° μ΄λ€ ν΄λμ€μ μΈμ€ν΄μ€μΈμ§ νμΈνκΈ° μν΄ instanceof μ°μ¬μλ₯Ό μ¬μ©νλ€.
ex)
boolean result = μ’ν(κ°μ²΄) instancof μ°ν(νμ )
public void method(Parent parent) {
if(parent instanceof Child) {
Child child = (Child) parent;
}
}
*μμΈκ° λ°μνλ©΄ νλ‘κ·Έλ¨μ μ¦μ μ’ λ£λκΈ° λλ¬Έμ method1()κ³Ό κ°μ΄ κ°μ νμ λ³νμ νκΈ° μ μ Instanceof μ°μ°μλ‘ λ³νμν¬ νμ μ κ°μ²΄μΈμ§ μ‘°μ¬ν΄μ μλͺ»λ λ§€κ°κ°μΌλ‘ μΈν΄ νλ‘κ·Έλ¨μ΄ μ’ λ£ λλ κ²μ λ§μμΌ νλ€.
'κ°λ° μ§μ, μ€ν¬λ¦½νΈ > Java λ¬Έλ²' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
8-1μΈν°νμ΄μ€(μΈν°νμ΄μ€) (1) | 2023.10.11 |
---|---|
7-3μμ(μΆμ ν΄λμ€) (0) | 2023.10.09 |
7-1.μμ(μμ) (1) | 2023.10.07 |
6-6ν΄λμ€(ν¨ν€μ§μ μ κ·Ό μ νμ) (1) | 2023.10.03 |
6-5ν΄λμ€(μΈμ€ν΄μ€ λ©€λ²μ μ μ λ©€λ²) (0) | 2023.10.02 |
λκΈ