개발의 시작과 끝

2020.04.29 / Day - 18 자바 객체 연습 본문

풀스택/자바 공부, 복습

2020.04.29 / Day - 18 자바 객체 연습

개발지혜 2020. 4. 29. 13:48

18일차

 

여러 무기를 다룰 수 있는 전사

class Main {
	public static void main(String[] args) {
		전사 a전사 = new 전사();
		
		a전사.a무기1 = new 칼();
		a전사.공격();
		// 출력 => 전사가 칼로 공격합니다.
		
		a전사.a무기1 = new 활();
		a전사.공격();
		// 출력 => 전사가 활로 공격합니다.
		
		a전사.a무기2 = new 칼();
		a전사.공격();
		// 출력 => 전사가 활로 공격합니다.
		// 출력 => 전사가 칼로 공격합니다.
	}
}

class 전사 {
	int 나이;
	무기 a무기1;
	무기 a무기2;
	
	void 공격() {
		if ( a무기1 != null ) {
			System.out.print("전사가 ");
			a무기1.작동();
		}
		
		if ( a무기2 != null ) {
			System.out.print("전사가 ");
			a무기2.작동();
		}
	}
}

class 무기 {
	void 작동() {}
}

class 칼 extends 무기 {
	void 작동() {
		System.out.println("칼로 공격 합니다.");
	}
}

class 활 extends 무기 {
	void 작동() {
		System.out.println("활로 공격 합니다.");
	}
}


출력
전사가 칼로 공격 합니다.
전사가 활로 공격 합니다.
전사가 활로 공격 합니다.
전사가 칼로 공격 합니다.