본문 바로가기
Language/Java

공부내용 정리 Java :: 예제 2

by Cs.Woo 2021. 6. 16.

가정


우리는 게임개발회사에 입사했다.
우리에게는 성격좋은 사수 한명이 있다.
내가 개발할 게임은 오리시뮬레이션 게임이다.
선임이 나의 개발을 도와주진 않지만 조언은 해준다.


요구사항
- D1 요구 : 오리를 생성하고 날게하시오.
- D2 요구 : 게임의 디테일을 살리기 위해서 `청둥오리`와 `흰오리`를 생성하고 날게하시오.
- D3 요구 : 오리 계열의 클래스에 날다 메서드가 중복되었습니다. 중복을 제거해주세요.
- D4 요구 : 게임의 재미를 위하여 고무오리를 추가하고 날게 하시오.
- D5 요구 : 주말 주주회의에서 고무오리가 하늘을 날아다니는 것에 대해서 태클이 들어왔습니다. 고무오리 계열은 하늘을 날 수 없게 해주세요.
- D6 요구 : 고무오리가 반응이 좋습니다. 고무2오리를 추가하고 날게 해주세요.
- D7 요구 : 고무오리계열에서 날다 메서드의 중복을 제거해주세요.


풀이 ::

package simulation;

public class GameOne {
	
	public static void main ( String[] args ) {
		
		// 첫번째 오리 Bob 생성
		NormalDuck normalBob = new NormalDuck();
		
		// 두번쨰 오리 Sam 생성
		WhiteDuck whiteSam = new WhiteDuck();
		
		// 세번째 오리 Tom 생성
		BlackDuck blackTom = new BlackDuck();
		
		// 네번째 오리 toy 생성
		RuberDuck toyDuck = new RuberDuck();
		
		// 다섯번째 오리 newToy 생성
		UpgraedRuberDuck newToyDuck = new UpgraedRuberDuck();
		
		// Bob 이 날았다.
		normalBob.fly();
		// Sam 도 날았다.
		whiteSam.fly();
		// Tom 도 날았다.
		blackTom.fly();
		// toy 도 날았다
		toyDuck.fly();
		// newToy 도 날았다.
		newToyDuck.fly();
		
	}
	

}

class NormalDuck {
	
	void fly() {
		System.out.println("오리가 날개로 날아갑니다.");
	}
	
}

class WhiteDuck extends NormalDuck {
	
}

class BlackDuck extends NormalDuck {
	
}

class RuberDuck extends NormalDuck {
	
	void fly() {
		System.out.println("고무는 날수 없습니다.");
	}
	
}

class UpgraedRuberDuck extends RuberDuck {
	
}

/*
결과값

오리가 날개로 날아갑니다.
오리가 날개로 날아갑니다.
오리가 날개로 날아갑니다.
고무는 날수 없습니다.
고무는 날수 없습니다.

*/