[Java] μλ° μμμ νμ©κ³Ό μμ ν΄λμ€μ κΈ°λ₯ νμ₯
μλ°μμ μμ(Inheritance)μ ν ν΄λμ€κ° λ€λ₯Έ ν΄λμ€μ μμ±κ³Ό λ©μλλ₯Ό κ°μ Έλ€ μΈ μ μλ κΈ°λ₯μ μλ―Ένλ€.
μ΄λ₯Ό ν΅ν΄ μ½λμ μ¬μ¬μ©μ±μ λμ΄κ³ , ν΄λμ€ κ°μ κ΄κ³λ₯Ό ꡬ쑰νν μ μλ€.
μμμ λΆλͺ¨ ν΄λμ€(Parent Class λλ Super Class)μ μμ ν΄λμ€(Child Class λλ Sub Class) κ°μ κ΄κ³λ₯Ό μ μνλ λ° μ¬μ©λλ€.
μμ ν΄λμ€λ λΆλͺ¨ ν΄λμ€μ λͺ¨λ μμ±κ³Ό λ©μλλ₯Ό μμλ°λλ€.
μ΄λ κ² μμλ°μ λ©μλλ μμ±μ μμ ν΄λμ€μμ λ°λ‘ μ¬μ μ(Override)ν μλ μκ³ ,
μλ‘μ΄ λ©μλλ μμ±μ μΆκ°ν μλ μλ€.
μ΄λ₯Ό ν΅ν΄ μμ ν΄λμ€λ λΆλͺ¨ ν΄λμ€μ κΈ°λ₯μ νμ₯νκ±°λ μμ ν μ μλ€.
// λΆλͺ¨ ν΄λμ€ μ μ
class Animal {
public void sound() {
System.out.println("λλ¬Ό μ리λ₯Ό λ΄λ€.");
}
}
// μμ ν΄λμ€ μ μ
class Dog extends Animal {
// λΆλͺ¨ ν΄λμ€μ sound λ©μλλ₯Ό μ¬μ μ
@Override
public void sound() {
System.out.println("λ©λ©");
}
// μμ ν΄λμ€μ μΆκ° λ©μλ
public void wagTail() {
System.out.println("꼬리λ₯Ό νλ€λ€.");
}
}
// λ©μΈ ν΄λμ€
public class Main {
public static void main(String[] args) {
// λΆλͺ¨ ν΄λμ€μ μΈμ€ν΄μ€ μμ±
Animal animal = new Animal();
animal.sound(); // λλ¬Ό μ리λ₯Ό λ΄λ€.
// μμ ν΄λμ€μ μΈμ€ν΄μ€ μμ±
Dog dog = new Dog();
dog.sound(); // λ©λ©
dog.wagTail(); // 꼬리λ₯Ό νλ€λ€.
}
}
μμ μ½λμμ Animal ν΄λμ€λ μ리λ₯Ό λ΄λ sound λ©μλλ₯Ό κ°μ§κ³ μλ€.
Dog ν΄λμ€λ Animal ν΄λμ€λ₯Ό μμλ°μ sound λ©μλλ₯Ό μ¬μ μνκ³ ,
μΆκ°λ‘ wagTail λ©μλλ₯Ό κ°μ§κ³ μλ€.
μ΄λ κ² Dog ν΄λμ€λ Animal ν΄λμ€μ κΈ°λ₯μ νμ₯νκ³ μλ€.