μλ°μμλ μΆμ ν΄λμ€μ μΈν°νμ΄μ€λ₯Ό νμ©νμ¬ μΆμνλ₯Ό ꡬννλ€.
abstract μ μ΄μ
‘μΆμμ μΈ’μ΄λΌλ μλ―Έλ₯Ό κ°κ³ μλ abstract
μ μ΄μλ₯Ό μ¬μ©νμ¬ μΆμ λ©μλμ μΆμ ν΄λμ€λ₯Ό λνλΈλ€.
μΆμ λ©μλλ λ©μλμ μκ·Έλμ²(μ΄λ¦, 맀κ°λ³μ)λ§ μκ³ κ΅¬μ²΄νλ λ°λλ μλ λ©μλμ΄λ©° μΆμ λ©μλκ° νλ μ΄μ λ€μ΄μλ ν΄λμ€λ₯Ό μΆμ ν΄λμ€λΌκ³ νλ€.
ꡬ체νλμ§ μμ μΆμ ν΄λμ€λ§μ κΈ°λ°μΌλ‘ κ°μ²΄ μμ±μ ν μ μλ€. νμ§λ§ μμκ΄κ³μ μμ ν΄λμ€μμ μ΄λ₯Ό νμ©νλ©΄ νμ ν΄λμ€μμ μΆμ λ©μλμ λ°λλ₯Ό ꡬννμ¬ κ° μν©μ λ§κ² ν¨μ¨μ μΌλ‘ μ½λλ₯Ό μμ±ν μ μλ€.
final μ μ΄μ
final
μ μ΄μκ° μμ λΆμΌλ©΄ κ° λ³κ²½μ΄ λΆκ°λ₯νκ±°λ νμ₯λμ§ μλ μ±μ§μ λνλΈλ€.
λ©μλ μμ μμΌλ©΄ ν΄λΉ λ©μλλ μ€λ²λΌμ΄λ©μ΄ λΆκ°λ₯νκ³ ν΄λμ€ μμ λΆμΌλ©΄ μμν μ μμμ μλ―Ένλ€.
μΈν°νμ΄μ€
μΈν°νμ΄μ€λ μΆμνλ₯Ό ꡬνν μ μλ μλ° λ¬Έλ² μμ μ€ νλμ΄λ€. μΆμ ν΄λμ€λ μΆμ λ©μλκ° νλ μ΄μ ν¬ν¨λλ©΄ ν΄λΉλμ§λ§ μΈν°νμ΄μ€λ μΆμ λ©μλμ μμλ§μ λ©€λ²λ‘ κ°μ§ μ μλ€λ μ μμ μΆμ ν΄λμ€μ λΉν΄ μΆμν μ λκ° λλ€κ³ λ³Ό μ μλ€.
μΈν°νμ΄μ€ ꡬν
μΈν°νμ΄μ€λ class
λμ interface
ν€μλλ‘ μμ±νλ€. μΈν°νμ΄μ€ λ΄μ μμλ₯Ό μ μνλ κ²½μ° public static final
λ‘, λ©μλλ₯Ό μ μνλ κ²½μ°μλ public abstract
λ‘ μ μν΄μΌ νλ€. νμ§λ§ μλ΅ν΄λ μ»΄νμΌλ¬κ° μλμΌλ‘ μΆκ°ν΄μ€λ€.
μ΄μ μ μΈμ νμΌλ ꡬ체νμμΌμ£Όλ λ©μλ λ°λλ₯Ό ν΄λμ€λ‘ μμ±ν΄μΌ νλ€. μμκ³Ό λΉμ·νμ§λ§ μΈν°νμ΄μ€λ₯Ό ꡬνν λμλ implements
ν€μλλ₯Ό μ¬μ©νλ€. μ΄ ν΄λμ€μμλ μΈν°νμ΄μ€μ μ μΈλ λͺ¨λ μΆμ λ©μλλ₯Ό μ€λ²λΌμ΄λ©νμ¬ κ΅¬νν΄μΌ νλ€.
λ, μΈν°νμ΄μ€μμλ λ€μ€μ ꡬνμ΄ κ°λ₯νλ€. ν΄λμ€μλ λ¬λ¦¬ ꡬ체νλμ§ μμ λ©€λ²λ₯Ό κ°κ³ μμ΄μ μΆ©λμ μ¬μ§κ° μκΈ° λλ¬Έμ΄λ€. λ°λΌμ νλμ ν΄λμ€κ° μ¬λ¬ κ°μ μΈν°νμ΄μ€λ₯Ό ꡬνν μ μλ€. ν΄λμ€μ Object
μ κ°μ μ΅μμ ν΄λμ€κ° μ‘΄μ¬νμ§ μλλ€λ μ λ ν΄λμ€μ μ°¨μ΄λ₯Ό 보μΈλ€.
class ExClass implements ExInterface1, ExInterface2, ExInterface3 {
//
}
μΈν°νμ΄μ€ μ₯μ
μ΄λ ν κΈ°λ₯μ΄ κ°μ§λ μν (λ©μλ μ μΈ)κ³Ό ꡬν(λ©μλ λ°λ)μ λΆλ¦¬μμΌμ μ½λ λ³κ²½ μμ λ²κ±°λ‘μμ μ΅μννλ©° λ 립μ μΈ νλ‘κ·Έλλ°μ΄ κ°λ₯νλ€.
'π Java' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[Java] 컬λ μ (Collection) (3) | 2022.09.17 |
---|---|
[Java] μ λ€λ¦κ³Ό μμΈ μ²λ¦¬ (0) | 2022.09.16 |
[Java] λ€νμ±(Polymorphism) (0) | 2022.09.07 |
[Java] μΊ‘μν π (0) | 2022.09.06 |
[Java] μμ(Inheritance) (0) | 2022.09.06 |