# 추상 클래스 선언하기 추상 클래스는 `abstract` 키워드를 통해 선언됩니다. ``` abstract class AAA { // 내부 구현 생략.. } ``` 추상 클래스는 직접적인 객체 생성이 불가능합니다. ``` AAA aaa = new AAA(); // ERROR ``` ## 문제 주어진 코드로 출력 예와 같은 결과를 얻으려 한다. 요구사항을 만족시켜 코드를 완성하시오. #### 요구사항 1. Animal 클래스를 추상 클래스로 선언할 것. 2. Tiger, Lion, Horse가 모두 Animal을 상속 받게 할 것. 3. 적절한 메소드 오버라이딩을 통해 출력 예와 같은 결과를 만들 것. ## 출력 예 ``` 호랑이: 어흥~! 사자: 크앙!! 말: 푸히힝~ ```
관련 강의로 이동

코드: java 1.8

public class Safari { public static void main(String[] args) { // 호랑이, 사자, 말 객체 생성 Tiger tiger = new Tiger(); Lion lion = new Lion(); Horse horse = new Horse(); // 상위 타입 Animal의 객체 배열 생성 Animal[] animals = { tiger, lion, horse }; // 모든 동물의 울음 소리 듣기 for (int i = 0; i < animals.length; i++) { Animal temp = animals[i]; temp.cry(); } } } /* 1. Animal을 추상 클래스로 선언하세요. */ class Animal { protected String name; public void cry() { System.out.println("동물이 웁니다."); } } /* 2. Animal을 상속받고, 호랑이 버전 cry() 메소드를 재정의하세요. */ class Tiger { public void cry() { System.out.println("호랑이: 어흥~!"); } } /* 3. Animal을 상속받고, 사자 버전 cry() 메소드를 재정의하세요. */ class Lion { public void cry() { System.out.println("사자: 크앙!!"); } } /* 4. Animal을 상속받고, 말 버전 cry() 메소드를 재정의하세요. */ class Horse { public void cry() { System.out.println("말: 푸히힝~"); } }

입력

정답이 궁금하다면? 코드를 제출해보세요!