π 2023λ 12μ 20μΌ
[java 12μΌμ°¨]
// util νμμ λͺ¨λ ν΄λμ€ / μΈν°νμ΄μ€ νμΌ import κ°λ₯ import java.util.*; // νΉμ ν¨ν€μ§μ νμν¨ν€μ§μ λͺ¨λ νμΌκΉμ§ import νλ κ²μ λΆκ°λ₯ // final ν΄λμ€λ μμ λΆκ°
μΆμν΄λμ€
abstract class C1305_Animal{ // final void makeSound(){ // System.out.println("λλ¬Όμ μ리λ₯Ό λ λλ€."); // } abstract void makeSound1(); void makeSound2(){ System.out.println("λλ¬Όμ μ리λ₯Ό λ λλ€."); } }
- μΆμν΄λμ€λ κ°λ¨ν λ§ν΄ μλλ©΄ νμ₯κ°λ₯ν κ°λ₯μ±μ μ΄μ΄λκΈ° μν μ€κ³μ΄λ€.
- ν΄λμ€λ λ©μλ μμ abstract ν€μλκ° λΆμΌλ©΄ μΆμ ν΄λμ€, μΆμ λ©μλμΈ κ²μ΄λ€.
- μΆμν΄λμλ₯Ό μμλ°κΈ°μν΄ μμ ν€μλμΈ extendsλ₯Ό μ¬μ©νλ€.
- μΆμ λ©μλ(makeSound1)μ μΌλ° λ©μλ(makeSound2)λ₯Ό κ°μ§ μ μλ€.
* μΆμ λ©μλμΌ κ²½μ° μ μΈλΆλ§ μμ±νκ³ κ΅¬νλΆλ μμν΄λμ€μμ μ€λ²λΌμ΄λ©νμ¬ μμ±νλ€.- μμ±μλ μ‘΄μ¬νλ€.
- μΌλ¨ μμμ΄κΈ° λλ¬Έμ λ¨μΌμμ
μΈν°νμ΄μ€
public interface Animal_Interface1 { void makeSound(); }
public interface Animal_Interface2 { String play(String a, String b); }
class Dog_Multi_Implements implements Animal_Interface1, Animal_Interface2{ @Override public void makeSound() { System.out.println("λ©λ©"); } @Override public String play(String a, String b) { return a+"μ "+b+"κ° λλλ€."; } }
- μΈν°νμ΄μ€λ κ·κ²©ν, νμ€ν ν λ μ¬μ©νλ€.
- interface ν€μλλ₯Ό ν΅ν΄ λ§λ€ μ μλ€.
- implement ν€μλλ₯Ό ν΅ν΄ ν΄λμ€μμ μ¬μ©ν μ μλ€.
- μΈν°νμ΄μ€λ μΆμλ©μλλ₯Ό κ°μ§μ μλ€.
* μΈν°νμ΄μ€μμ μ μΈν μΆμλ©μλλ λ°λμ implementν ν΄λμ€μμ ꡬνλΆλ₯Ό λ§λ€μ΄μ€μΌ νλ€. (κ°μ )- ν΄λμ€μ λ€μ€ ꡬν, μΈν°νμ΄μ€λΌλ¦¬μ λ€μ€ μμ
- λ³μλ₯Ό μ¬μ©ν κ²½μ° static final λ³μλ§ μ¬μ© κ°λ₯ (μμ)