package com.p1;
class Main {
public static void main(String[] args) {
전사 a전사1 = new 전사();
a전사1.a왼손무기 = new 칼();
a전사1.공격();
// 출력 => 전사가 왼손으로 칼(을)를 사용합니다.
System.out.println("---");
전사 a전사2 = new 전사();
a전사2.a왼손무기 = new 창();
a전사2.a오른손무기 = new 도끼();
a전사2.공격();
// 출력 => 전사가 왼손으로 창(을)를 사용합니다.
// 출력 => 전사가 오른손으로 도끼(을)를 사용합니다.
}
}
class 전사 {
String 사용자명, 왼손, 오른손;
전사(){
사용자명 = "전사";
왼손 = "왼손";
오른손 = "오른손";
}
무기 a왼손무기;
무기 a오른손무기;
void 공격(){
if(a왼손무기 !=null){
a왼손무기.작동(사용자명,왼손);
}
if(a오른손무기 !=null){
a오른손무기.작동(사용자명,오른손);
return;
}
}
}
abstract class 무기{
String 무기명;
무기(){
무기명 = "무기";
}
void 작동(String 사용자, String 착용위치){
System.out.printf("%s가 %s(으)로 %s(을)를 사용합니다.\n",사용자,착용위치,무기명);
}
}
class 칼 extends 무기{
칼(){
this.무기명 = "칼";
}
}
class 창 extends 무기{
창(){
this.무기명 = "창";
}
}
class 도끼 extends 무기{
도끼(){
this.무기명 = "도끼";
}
}