8-1μΈν°νμ΄μ€(μΈν°νμ΄μ€)
μΈν°νμ΄μ€ : κ°λ° μ½λμ κ°μ²΄κ° μλ‘ ν΅μ νλ μ μ μν μ νλ€. κ°λ° μ½λκ° μΈν°νμ΄μ€μ λ©μλλ₯Ό νΈμΆνλ©΄ μΈν°νμ΄μ€λ κ°μ²΄μ λ©μλλ₯Ό νΈμΆμν¨λ€. κ·Έλ κΈ° λλ¬Έμ κ°λ° μ½λλ κ°μ²΄μ λ΄λΆ ꡬ쑰λ₯Ό μ νμκ° μκ³ μΈν°νμ΄μ€μ λ©μλλ§ μκ³ μμΌλ©΄ λλ€.
μ¦, κ°λ° μ½λλ₯Ό μμ νμ§ μκ³ μ¬μ©νλ κ°μ²΄λ₯Ό λ³κ²½ν μ μλλ‘ νκΈ° μν΄μμ΄λ€. λ°λΌμ κ°λ° μ½λ μΈ‘λ©΄μμλ μ½λ λ³κ²½μμ΄ μ€ν λ΄μ©κ³Ό 리ν΄κ°μ λ€μνν μ μλ€λ μ₯μ μ΄ μλ€.
μΈν°νμ΄μ€ μ μΈ
μΈν°νμ΄μ€ μ μΈμ class ν€μλ λμ μ interface ν€μλλ₯Ό μ¬μ©νλ€,
[public] interface μΈν°νμ΄μ€μ΄λ¦ {...}
*μΈν°νμ΄μ€ μ΄λ¦μ ν΄λμ€ μ΄λ¦μ μμ±νλ λ°©λ²κ³Ό λμΌνλ€. μμ΄ λμλ¬Έμλ₯Ό ꡬλΆνλ©°, 첫 κΈμλ₯Ό λλ¬Έμλ‘ νκ³ λλ¨Έμ§λ μλ¬Έμλ‘ μμ±νλ κ²μ΄ κ΄λ‘μ΄λ€.
μΈν°νμ΄μ€ ꡬμ±
ν΄λμ€ : νλ, μμ±μ, λ©μλ
μΈν°νμ΄μ€ : νλ, λ©μλ -> κ°μ²΄λ₯Ό μμ±ν μ μκΈ° λλ¬Έμ μμ±μλ μλ€.
μμ νλ μ μΈ
μΈν°νμ΄μ€λ κ°μ²΄ μ¬μ© λ°©λ²μ μ μν κ²μ΄λ―λ‘ μ€ν μ λ°μ΄ν°λ₯Ό μ μ₯ν μ μλ μΈμ€ν΄μ€ λλ μ μ νλλ₯Ό μ μΈν μ μλ€. κ·Έλ¬λ μμ νλλ μ μΈμ΄ κ°λ₯νλ€. λ¨, μμλ μΈν°νμ΄μ€μ κ³ μ λ κ°μΌλ‘ μ€ν μμ λ°μ΄ν°λ₯Ό λ°κΏ μ μλ€.
*μΈν°νμ΄μ€μ μ μΈλ νλλ λͺ¨λ public static finalμ νΉμ±μ κ°λλ€. μ΄λ₯Ό μλ΅νλλΌλ μ»΄νμΌ κ³Όμ μμ μλμΌλ‘ λΆκ² λλ€.
ex)
[public static final] νμ μμμ΄λ¦ = κ°;
*μμ μ΄λ¦μ λλ¬Έμλ‘ μμ±νλ, μλ‘ λ€λ₯Έ λ¨μ΄λ‘ ꡬμ±λμ΄ μμ κ²½μ°μλ μΈλλ°(_)λ‘ μ°κ²°νλ κ²μ΄ κ΄λ‘μ΄λ€.
μΆμ λ©μλ μ μΈ
μΈν°νμ΄μ€μ μ μΈλ μΆμ λ©μλλ λͺ¨λ public abstractμ νΉμ±μ κ°κΈ° λλ¬Έμ public abstractλ₯Ό μλ΅νλλΌλ μ»΄νμΌ κ³Όμ μμ μλμΌλ‘ λΆκ² λλ€.
μΈν°νμ΄μ€ ꡬν
κ°λ° μ½λκ° μΈν°νμ΄μ€ λ©μλλ₯Ό νΈμΆνλ©΄ μΈν°νμ΄μ€λ κ°μ²΄μ λ©μλλ₯Ό νΈμΆνλ€. κ°μ²΄λ μΈν°νμ΄μ€μμ μ μλ μΆμ λ©μλμ λμΌν λ©μλ μ΄λ¦, λ§€κ° νμ , λ¦¬ν΄ νμ μ κ°μ§ μ€μ²΄ λ©μλλ₯Όκ°μ§κ³ μμ΄μΌ νλ€. μ΄λ¬ν κ°μ²΄λ₯Ό μΈν°νμ΄μ€μ ꡬν κ°μ²΄ λΌκ³ νκ³ , ꡬν κ°μ²΄λ₯Ό μμ±νλ ν΄λμ€λ₯Ό ꡬν ν΄λμ€λΌκ³ νλ€.
ꡬν ν΄λμ€
ꡬν ν΄λμ€λ 보ν΅μ ν΄λμ€μ λμΌνλ°, μΈν°νμ΄μ€ νμ μΌλ‘ μ¬μ©ν μ μμμ μλ €μ£ΌκΈ° μν΄ ν΄λμ€ μ μΈλΆμ implements ν€μλλ₯Ό μΆκ°νκ³ μΈν°νμ΄μ€ μ΄λ¦μ λͺ μν΄μΌ νλ€.
ex)
public class ꡬνν΄λμ€μ΄λ¦ implements μΈν°νμ΄μ€μ΄λ¦ {
//μΈν°νμ΄μ€μ μ μΈλ μΆμ λ©μλμ μ€μ²΄ λ©μλ μ μΈ
}
λ€μ€ μΈν°νμ΄μ€ ꡬν ν΄λμ€
κ°μ²΄λ λ€μ κ·Έλ¦Όκ³Ό κ°μ΄ λ€μμ μΈν°νμ΄μ€ νμ μΌλ‘ μ¬μ©ν μ μλ€.
μΈν°νμ΄μ€ Aμ μΈν°νμ΄μ€ Bκ° κ°μ²΄μ λ©μλλ₯Ό νΈμΆν μ μμΌλ €λ©΄ κ°μ²΄λ μ΄ λ μΈν°νμ΄μ€λ₯Ό λͺ¨λ ꡬνν΄μΌ νλ€.
ex)
public class ꡬνν΄λμ€μ΄λ¦ implements μΈν°νμ΄μ€A, μΈν°νμ΄μ€B {
//μΈν°νμ΄μ€ Aμ μ μΈλ μΆμ λ©μλμ μ€μ²΄ λ©μλ μ μΈ
//μΈν°νμ΄μ€ Bμ μ μΈλ μΆμ λ©μλμ μ€μ²΄ λ©μλ μ μΈ
}
'κ°λ° μ§μ, μ€ν¬λ¦½νΈ > Java λ¬Έλ²' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
9-1μ€μ²© ν΄λμ€μ μ€μ²© μΈν°νμ΄μ€ (0) | 2023.10.15 |
---|---|
8-2μμ(νμ λ³νκ³Ό λ€νμ±) (0) | 2023.10.11 |
7-3μμ(μΆμ ν΄λμ€) (0) | 2023.10.09 |
7-2μμ(νμ λ³νκ³Ό λ€νμ±) (0) | 2023.10.09 |
7-1.μμ(μμ) (1) | 2023.10.07 |
λκΈ