본문 바로가기
study/Java

[Java] 24. Test1 풀이 (각 클래스를 생성하고 출력하기)

by 금이패런츠 2022. 3. 22.
728x90
반응형
package chap8;

/* 
 * 1. 동물클래스 : Animal1 => 추상클래스
 *    멤버변수 : 동물의 종류, 다리수
 *    생성자 : 동물의 종류, 다리수  입력받기
 *    멤버메서드 : void eat()    => 추상메서드로 만들기
 *             String sound()=> 추상메서드로 만들기
 * 2. 강아지클래스 : Dog1 Animal1 클래스의 하위클래스
 *     생성자:매개변수 없음.            
 *    멤버메서드 : void eat()   "주인이 주는대로 먹는다"
 *             String sound() "멍멍"
 * 3. 사자클래스 : Lion1   Animal1 클래스의 하위클래스
 *     생성자:매개변수 없음.            
 *    멤버메서드 : void eat()   "초식동물을 잡아 먹는다"
 *             String sound() "어흥"
 */
abstract class Animal1 {
	String ani;
	int leg;
	Animal1(String ani, int leg) {
		this.ani = ani;
		this.leg = leg;
	}
	abstract void eat();
	abstract String sound();
}

class Dog1 extends Animal1 {
	Dog1() {
		super("강아지", 4);
	}

	@Override
	void eat() {
		System.out.println("주인이 주는대로 먹는다.");
	}

	@Override
	String sound() {
		return "멍멍";
	}
}

class Lion1 extends Animal1 {
	Lion1() {
		super("사자", 4);
	}

	@Override
	void eat() {
		System.out.println("초식동물 잡아먹는다.");
	}

	@Override
	String sound() {
		return "어흥";
	}
}

public class Test0316_1 {
	public static void main(String[] args) {
		 Animal1[] animal = new Animal1[2];
		 animal[0] = new Dog1();
		 animal[1] = new Lion1();
		 for(Animal1 a : animal) {
			 System.out.println(a.ani+"("+a.leg + ")=>" + a.sound());
			 a.eat();
		 }
	}
}
728x90
반응형