문제점Animal 클래스를 생성할 필요가 없다.Animal 클래스를 상속받는 곳에서 sound() 메서드를 오버라이딩 하지 않을 가능성이 있다.⇒ 추상 클래스 도입 추상 클래스추상적인 개념을 제공하는 클래스로, 인스턴스가 존재하지 않는다.기존 클래스와 완전히 같지만, new AbstractAnimal()와 같이 직접 인스턴스를 생성하지는 못한다. abstract class AbstractAnimal {...}추상 메서드 추상적인 개념을 제공하는 메서드로 실체가 존재하지 않는다.자식 클래스가 반드시 오버라이딩 해야 한다.public abstract void sound(); -추상 메서드가 하나라도 있는 클래스는 추상 클래스로 선언해야 한다.(그렇지 않으면 컴파일 오류 발생)추상 메서드는 메시지 바디가 없..