전사가 무기가 없다면 공격을 못하게 하기

인철·2023년 10월 13일
0

algorithm

목록 보기
37/91

심화문제

문제
class Main {
	public static void main(String[] args) {
		전사 a전사 = new 전사();
		a전사.공격();
		// 출력 => 아직 무기가 없습니다.
		a전사.a무기 = new();
		a전사.공격();
		// 출력 => 칼로 공격합니다.
	}
}

정답
class Main {
	public static void main(String[] args) {
		// 전사 객체 생성
		전사 a전사 = new 전사();
		// 무기가 없는 상태에서의 공격
		a전사.공격(); // 출력 => 아직 무기가 없습니다.
		// 칼을 무기로 설정하고 공격
		a전사.a무기 = new();
		a전사.공격(); // 출력 => 칼로 공격합니다.
	}
}

// 전사 클래스
class 전사 {
	int 나이; // 전사의 나이
	무기 a무기; // 전사가 사용하는 무기

	// 무기가 없는 상태에서의 공격 메서드
	void 공격() {
		if (a무기 == null) { // 무기가 없을 때
			System.out.println("아직 무기가 없습니다.");
		} else { // 무기가 있는 경우
			a무기.작동(); // 해당 무기의 작동 메서드 호출
		}
	}
}

// 무기 클래스
class 무기 {
	// 무기의 작동 메서드
	void 작동() {
	}
}

// 칼 클래스 (무기 클래스를 상속받음)
classextends 무기 {
	// 칼로 공격하는 작동 메서드 재정의
	void 작동() {
		System.out.println("칼로 공격합니다.");
	}
}
profile
같은글이있어도양해부탁드려요(킁킁)

0개의 댓글