더북(TheBook)

인스턴스 변수를 공부할 때 상대방에게 보이지 않는 은폐라는 특수 기능을 가진 전투기를 소개했습니다. 전투기는 비행하며 공격할 수 있는 공중 공격 유닛입니다. ‘공중 + 공격 유닛’이 합쳐져 있으니 지금까지 만든 클래스 중에서 ‘공격’ 유닛인 AttackUnit 클래스와 ‘공중’, 즉 비행 기능을 제공하는 Flyable 클래스를 조합하면 공중 공격 유닛을 만들 수 있습니다.

그럼 공중 공격 유닛을 위한 새로운 클래스를 만들어 보겠습니다. 이름은 FlyableAttackUnit으로 하고, 이번에는 AttackUnit 클래스와 Flyable 클래스를 함께 상속받습니다. 이렇게 클래스를 2개 이상 상속받는 것을 다중 상속(multiple inheritance)이라고 하며 다음과 같이 쉼표로 구분해 부모 클래스명을 나열하면 됩니다.

형식

class 자식 클래스(부모 클래스1, 부모 클래스2, ...):

그리고 __init__() 생성자 안에서 상속받은 클래스들의 __init__() 생성자를 각각 호출하면 됩니다.

# 공중 공격 유닛
class FlyableAttackUnit(AttackUnit, Flyable):
    # 유닛 이름, 체력, 공격력, 비행 속도
    def __init__(self, name, hp, damage, flying_speed):
        AttackUnit.__init__(self, name, hp, damage) # 유닛 이름, 체력, 공격력
        Flyable.__init__(self, flying_speed) # 비행 속도
신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.