일반 유닛인 Unit 클래스와 비행 기능인 Flyable 클래스를 정의합니다. 이 둘을 부모 클래스로 하는 공중 유닛인 FlyableUnit을 정의하고 생성자에서 super()로 부모 클래스의 생성자를 호출하게 합니다. 그리고 공중 유닛 중에서 유닛의 수송을 담당하는 수송선을 생성하는 코드를 적고 실행해 보면 결과가 다음과 같습니다.
실행결과 |
Unit 생성자 |
부모 클래스는 분명 Unit과 Flyable인데, super()로 생성자를 호출했을 때 Unit 클래스의 생성자가 호출됩니다. 부모 클래스의 상속 순서를 Unit, Flyable에서 Flyable, Unit으로 바꾼 후 다시 실행해 보겠습니다.
super.py
# class FlyableUnit(Unit, Flyable):
class FlyableUnit(Flyable, Unit): # 상속 순서 변경
def __init__(self):
super().__init__()
실행결과 |
Flyable 생성자 |