-
05 μΈν°νμ΄μ€
- λ€λ₯Έ ν΄λμ€λ₯Ό μμ±ν λ κΈ°λ³Έμ΄ λλ νμ μ 곡νλ©΄μ, λ€λ₯Έ ν΄λμ€ μ¬μ΄μ μ€κ° λ§€κ° μν κΉμ§ λ΄λΉνλ μΌμ’ μ μΆμ ν΄λμ€
- κ°μ²΄μ μ¬μ© λ°©λ²μ κ°μ΄λλΌμΈ νλ κ²
- μλ°μ ν΄λμ€λ₯Ό ν΅ν λ€μ€ μμμ΄ μλ λμ μΈν°νμ΄μ€λ₯Ό ν΅ν΄ λ€μ€ μμμ μ§μ
- μ€λ‘μ§ μΆμ λ©μλμ μμλ‘ μ΄λ£¨μ΄μ§ ↔ μΆμν΄λμ€λ μΆμ λ©μλ λΏλ§ μλλΌ μμ±μ, νλ, μΌλ° λ©μλλ ν¬ν¨
νΉμ§
- λ€μ€ μμ κ°λ₯(extends) - μΌλ° ν΄λμ€(λ¨μΌ μμλ§ κ°λ₯)μ λ¬λ¦¬ μ¬λ¬ κ°μ λ€λ₯Έ μΈν°νμ΄μ€λ₯Ό extendsλ‘ μμλ°μ μ μμ
- μΆμ λ©μλμ μμλ§ μ¬μ© κ°λ₯ (ꡬν μμ€ μμ± λΆκ°)
- μμ±μ μ¬μ© λΆκ° (κ°μ²΄κ° μλλ―λ‘)
- **λ©μλ μ€λ²λΌμ΄λ© νμ (**μμν΄λμ€λ λΆλͺ¨ μΈν°νμ΄μ€μ μΆμ λ©μλλ₯Ό λͺ¨λ μ€λ²λΌμ΄λ© ν΄μΌ ν¨)
μΈν°νμ΄μ€μ μ¬μ© μ΄μ
- μΈν°νμ΄μ€λ μ½λμ μΈν°νμ΄μ€λ‘ μμ±λ κ°μ²΄λ€μ μ€κ°μ μ€κ³ν΄μ£Όλ μν
- κ°λ° μ½λκ° μΈν°νμ΄μ€μ λ©μλ νΈμΆ → μΈν°νμ΄μ€κ° κ°μ²΄μ λ©μλλ₯Ό νΈμΆ
- ν΄λμ€μ κ°μ²΄κ° λͺκ°κ° λ μ§ μ μ μμΌλ―λ‘ μΈν°νμ΄μ€λ₯Ό ꡬνν ν΄λμ€λ€μ νλμ μΈν°νμ΄μ€ νμ μΌλ‘ λ€λ£Έ
- μμ‘΄μ μΈ ν΄λμ€λ₯Ό λ 립μ μΈ ν΄λμ€λ‘ μ ν
μ μΈ
μ κ·Όμ μ΄μ interface μΈν°νμ΄μ€μ΄λ¦ { public static final νμ μμμ΄λ¦ = κ°; ... public abstract λ©μλμ΄λ¦(맀κ°λ³μλͺ©λ‘); ... }
- ν΄λμ€μλ λ¬λ¦¬ μΈν°νμ΄μ€μ λͺ¨λ μμλ public static finalμ΄μ΄μΌ νλ©°, λͺ¨λ λ©μλλ public abstractμ΄μ΄μΌ ν¨
- μ κ·Ό μ μ΄μλ μλ΅ κ°λ₯νλ©° μλ΅μ μ»΄νμΌλ¬κ° μλμΌλ‘ μΆκ°
μΈν°νμ΄μ€μ λ©μλ
- μΈν°νμ΄μ€λ₯Ό implementsν ν΄λμ€λ€μ΄ κ°μ λ‘ κ΅¬νν΄μΌ ν¨ (ν΄λμ€μ ꡬνλμ΄μμ§ μμΌλ©΄ μ»΄νμΌ μ€λ₯ λ°μ)
- λ©μλμ μ΄λ¦κ³Ό μ μΆλ ₯μ λν μ μλ§ μκ³ λ΄μ©μ΄ μμ
- μΈν°νμ΄μ€μ λ©μλλ νμ publicμΌλ‘ ꡬνν΄μΌ ν¨
μΈν°νμ΄μ€μ ꡬν
class ν΄λμ€μ΄λ¦ implements μΈν°νμ΄μ€μ΄λ¦ { ... }
- μ§μ μΈμ€ν΄μ€λ₯Ό μμ±νλ κ²μ λΆκ°
- μΈν°νμ΄μ€κ° ν¬ν¨νκ³ μλ μΆμ λ©μλλ₯Ό ꡬνν΄μ€ ν΄λμ€λ₯Ό μμ±ν΄μΌ ν¨
λν΄νΈ λ©μλ
interface Predator { String getFood(); default void printFood() { System.out.printf("my food is %s\\n", getFood()); } }
- μΈν°νμ΄μ€μ κΈ°λ³Έ λ©μλ → ꡬν체λ₯Ό κ°μ§ μ x (μ μΆλ ₯μ λν μ μλ§ μκ³ λ΄μ©μ΄ μμ)
- μΈν°νμ΄μ€μ λν΄νΈ λ©μλ → ꡬν체λ₯Ό κ°μ§ μ o , ν΄λΉ μΈν°νμ΄μ€λ₯Ό ꡬνν ν΄λμ€λ λν΄λ λ©μλλ₯Ό ꡬννμ§ μμλ μ¬μ©ν μ μκ³ μ€λ²λΌμ΄λ©μ΄ κ°λ₯
μΈμ©
'π Study > : Java' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
λκΈ