공중 유닛을 위해 만든 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)