[Java] 구성 사용하여 중복 제거

우혜지·2023년 2월 25일
0
  • 구성을 사용하여 전사 클래스의 중복을 제거해주세요.
// 문제 : 구성(전사는 무기로 구성된다.)을 사용하여 중복을 제거해주세요.
// Main 클래스는 수정불가능

class Main3 {
    public static void main(String[] args) {
        전사타입A a전사타입A = new 전사타입A();
        a전사타입A.공격();

        전사타입B a전사타입B = new 전사타입B();
        a전사타입B.공격();

        전사타입C a전사타입C = new 전사타입C();
        a전사타입C.공격();

        전사타입D a전사타입D = new 전사타입D();
        a전사타입D.공격();
    }
}

class 전사타입A extends 전사 {
    전사타입A() {
        a무기 = new();
    }
}
class 전사타입B extends 전사 {
    전사타입B() {
        a무기 = new();
    }
}
class 전사타입C extends 전사 {
    전사타입C() {
        a무기 = new();
    }
}
class 전사타입D extends 전사 {
    전사타입D() {
        a무기 = new();
    }
}
class 전사 {
    무기 a무기;
    void 공격() {
        a무기.사용();
    }
    
}
abstract class 무기 {
    abstract void 사용();
}
classextends 무기 {
    void 사용() {
        System.out.println("칼로 공격");
    }
}
classextends 무기 {
    void 사용() {
        System.out.println("활로 공격");
    }
}
profile
안녕하세요 :)

0개의 댓글