package CHAPTER06;

//부모 클래스 (SuperClass)
class Animal3 {
	void makeSound() {
		System.out.println("동물이 소리를 냅니다.");
	}
}

//자식 클래스 (SubClass) - 메소드 오버라이딩
class Dog3 extends Animal3 {
	// 메서드 오버라이딩 (부모 클래스의 makeSound()를 재정의)
	@Override
	void makeSound() {
		System.out.println("멍멍! 개가 짖습니다.");
	}
}

public class AnimalOverridingExample {
	public static void main(String[] args) {
		Animal3 myAnimal = new Animal3(); // 부모 클래스 객체
		myAnimal.makeSound(); // "동물이 소리를 냅니다."

		Dog3 myDog = new Dog3(); // 자식 클래스 객체
		myDog.makeSound(); // "멍멍! 개가 짖습니다."

		Animal3 polyDog = new Dog3(); // 다형성 적용
		polyDog.makeSound(); // "멍멍! 개가 짖습니다."
	}
}
