본문 바로가기
study/Java

[Java] 24. Test2 풀이 (구동클래스를 실행했을때 다음의 결과가 나오도록 프로그램 구현하기)

by 금이패런츠 2022. 3. 22.
728x90
반응형
package chap8;
/*
 * Animal2 클래스는 다음과 같다. 구동 클래스를 실행했을때 다음의 결과나 
 * 나오도록 프로그램 구현하기  
 * [결과]
 * 비둘기는 작은 벌레를 잡아 먹는다.
 * 비둘기는 날아 다니는 새입니다.
 * 원숭이는 나무에서 열매를 따서 먹는다
 * 독수리는 작은 새를 잡아 먹는다.
 * 독수리는 엄청 높이 날아 다닌다.
 */
abstract class Animal2 {
	String name;
	Animal2(String name){
		this.name = name;
	}
	abstract void eat();
}
interface Flyable{
	void fly();
}
class Dove2 extends Animal2 implements Flyable{
	Dove2(){
		super("비둘기");
	}
	@Override
	public void fly() {
		System.out.println(name+"는 날아 다니는 새입니다.");
	}
	@Override
	void eat() {
		System.out.println(name + "는 작은 벌레를 잡아 먹는다.");
	}
}
class Monkey2 extends Animal2{
	Monkey2 () { 
		super ("원숭이");
	}
	void eat () { 
		System.out.println(name +"는 나무에서 열매를 따서 먹는다");
	}
}
class Eagle2 extends Animal2 implements Flyable { 
	Eagle2 (){
		super("독수리");
	}
	@Override
	public void fly() {
		System.out.println(name + "는 엄청 높이 날아 다닌다.");
	}
	@Override
	void eat() {
		System.out.println(name + "는 작은 새를 잡아 먹는다.");
	}	
}
public class Test0316_2 {
	public static void main(String[] args) {
		Animal2[] arr = new Animal2[3];
		arr[0] = new Dove2();
		arr[1] = new Monkey2();
		arr[2] = new Eagle2();
		for(Animal2 a : arr) {
			a.eat();
			if(a instanceof Flyable) {
				Flyable f = (Flyable)a;
				f.fly();
			}
		}
	}
}
728x90
반응형