π Java Interface

β μΆμν΄λμ€μ νκ³
- μλ°ν΄λμ€ κ°μ μμμλ νλμ λΆλͺ¨λ§ μ‘΄μ¬ν μ μκΈ° λλ¬Έμ, μμ μν©μμ μꡬνλ λ€μ€ μμμ ꡬνμ λΆκ°λ₯νλ€.
β Interfaceλ?
- μλ²½ν μΆμνλ₯Ό ꡬννκΈ° μν Java classμ ν μ’
λ₯μ΄λ€.
- λ€μ€ μμμ΄ κ°λ₯νκΈ° λλ¬Έμ μ©λλ³λ‘ μΈλΆννμ¬ νμν μμλ§ μμν μ μλ€.
- λμΌν λͺ©μ νμ λμΌν κΈ°λ₯μ μννκ²λ κ°μ νλ κ²μ΄ λ°λ‘ μΈν°νμ΄μ€μ μν μ΄μ§ κ°λ
μ΄λ€.
- μλ°μ λ€νμ±μ κ·Ήλννμ¬ κ°λ°μ½λ μμ μ μ€μ΄κ³ νλ‘κ·Έλ¨ μ μ§λ³΄μμ±μ λμ΄κΈ° μν΄ μΈν°νμ΄μ€λ₯Ό μ¬μ©νλ€.
π€ λΉκ΅
μΆμν΄λμ€
- λ©€λ²λ³μ, μμ±μ, λ©μλ μΆμλ©μλλ₯Ό ν¬ν¨ν μ μλ€.
- μ΄ ν΄λμ€λ₯Ό μμλ°λ μμ ν΄λμ€λ λ€λ₯Έ ν΄λμ€λ₯Ό μμλ°μ μ μλ€.
- κ°μ²΄μ μμ±μ΄ λΆκ°λ₯νλ€.
μΈν°νμ΄μ€
- μΆμλ©μλλ§ ν¬ν¨ν μ μλ€.
- μΈν°νμ΄μ€λ λ€μ€ μμμ΄ κ°λ₯νλ€.
- κ°μ²΄μ μμ±μ΄ λΆκ°λ₯νλ€.
β Interface μμμ μν implements ν€μλ
- μΈν°νμ΄μ€ μμμ implements ν€μλλ₯Ό μ¬μ©νλ€.
- μΈν°νμ΄μ€λ μΆμνλ₯Ό ꡬννκ³ μκΈ° λλ¬Έμ, μΈν°νμ΄μ€λ₯Ό μμλ°λ ν΄λμ€λ μΈν°νμ΄μ€ λ΄μ λͺ¨λ λ©μλλ€μ λ°λμ μ¬μ μ ν΄μΌνλ€.
β Interfaceμ λ€μ€ μμ
- μΈν°νμ΄μ€λ μ½€λ§, λ‘ μ°κ²°νμ¬ μ¬λ¬κ°λ₯Ό λμμ μμ λ°μ μ μλ€.
public class Monster implements Fight, Move{
}
- νμν κ²½μ° λ€λ₯Έ ν΄λμ€μ λμμ μμλ°μ μ μλ€.
public class Monster extends User implements Fight,Move{
}
βοΈ Interface μμ
μΈν°νμ΄μ€λ₯Ό μ¬μ©ν΄μ κ°λ¨ν μΈνκΈ° νλ‘κ·Έλ¨μ λ§λ€μ΄λ³΄μ

μΈνκΈ° μΈν°νμ΄μ€λ₯Ό λ§λ€μ΄μ£Όκ³ λ©μλλ₯Ό μμ±ν΄μ€λ€.

λ€μ€ μμμ μ°μ΅ν΄λ³΄κΈ° μν΄ μλ‘μ΄ μΈν°νμ΄μ€λ₯Ό λ§λ€μλ€. 건쑰기 μΈν°νμ΄μ€

μλ‘μ΄ ν΄λμ€μ implementsλ‘ μΈν°νμ΄μ€λ₯Ό μμνκ³ wahsinMachine κ³Ό dryMachineμ μμλ°μμ¨λ€. κ·Έλ¦¬κ³ λ©μλμ μΆλ ₯ν κ°μ λ£μ΄μ€λ€.

Main Classμ λ°μμ¨ μΈν°νμ΄μ€λ₯Ό μ¬μ©νλ©΄ μΆλ ₯κ°μ΄ λμ¨λ€.