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 전사{
무기 a무기1;
무기 a무기2;
String 사용자 = "전사";
void 공격(){
if (a무기1 != null){
a무기1.작동(사용자);
}
if (a무기2 != null){
a무기2.작동(사용자);
}}
}
abstract class 무기{
abstract void 작동(String 사용자);
}
class 활 extends 무기{
void 작동(String 사용자){
System.out.println(사용자+"가 활로 공격합니다.");
}
}
class 칼 extends 무기{
void 작동(String 사용자){
System.out.println(사용자+"가 칼로 공격합니다.");
}
}