JAVA_coding_11_01

AMJ·2023년 3월 6일
0

code_log_java

목록 보기
13/29

캐릭터 이름과 직업, 무기 기능 구현


class Main {
    public static void main(String[] args) {
        전사 a전사 = new 홍길동();
        a전사.a무기 = new 활();
        a전사.공격();
        // 출력 => 홍길동이(가) 활(으)로 공격합니다.

        a전사 = new 홍길순();
        a전사.공격();
        // 출력 => 홍길순이(가) 칼(으)로 공격합니다.

        a전사.a무기 = new 창();
        a전사.공격();
        // 출력 => 홍길순이(가) 창(으)로 공격합니다.
    }
}
abstract class 전사 {
    String 이름, 무기명;
    무기 a무기;
    
    void 공격(){
        a무기.작동(this.이름);
    }
    전사 (){
        이름 = "No Name";
        무기명 = "빈손";
    }
}
class 홍길동 extends 전사{
    홍길동(){
        이름 = "홍길동";
    }
}
class 홍길순 extends 전사{
    홍길순(){
        이름 = "홍길순";
        a무기 = new 칼(); // 기본 무기 탑재
    }
}
abstract class 무기{
    String 무기명, 사용자명;
    void 작동(String 사용자명){
        System.out.println(사용자명+"이(가) "+무기명+"(으)로 공격합니다.");
    }
    
}
class 활 extends 무기{
    활(){
        무기명 = "활";
    }
}
class 창 extends 무기{
    창(){
        무기명 = "창";
    }
}
class 칼 extends 무기{
    칼(){
        무기명 = "칼";
    }
}
profile
재미있는 것들

0개의 댓글