더북(TheBook)

공중 유닛을 위해 만든 Flyable 클래스는 수정할 필요가 없으므로 그대로 둡니다. 공중 공격 유닛을 위한 FlyableAttackUnit 클래스는 move() 메서드에서 [공중 유닛 이동] 문구만 없앱니다. move() 메서드를 호출하면 실제로는 부모 클래스인 Flyable 클래스의 fly() 메서드가 실행되면서 어느 방향으로 날아가는지를 출력하기 때문입니다.

# 비행 기능
class Flyable:
    def __init__(self, flying_speed):
        self.flying_speed = flying_speed

    def fly(self, name, location):
        print("{0} : {1} 방향으로 날아갑니다. [속도 {2}]" 
            .format(name, location, self.flying_speed))

# 공중 공격 유닛
class FlyableAttackUnit(AttackUnit, Flyable):
    def __init__(self, name, hp, damage, flying_speed):
        AttackUnit.__init__(self, name, hp, damage, 0)
        Flyable.__init__(self, flying_speed)

    def move(self, location):
        # print("[공중 유닛 이동]") -------- 출력문 삭제
        self.fly(self.name, location)
신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.