Java에서는 다중으로 상속받으려면 interface에서 기능만 조금 가져올 뿐
직접적으로 다중 상속을 받을 수 없습니다.
하지만 Python에서는 다중 상속이 가능합니다.
class Avengers:
def __init__(self, realName):
self.realName = realName
def attack(self):
print("으-썸한 공격!")
def printInfo(self):
print(self.realName)
###########################################3
class Human:
def __init__(self, age):
self.age =age
def eat(self):
print("쩝쩝박사")
def attack(self):
print("타격감 없는 발차기")
def printInfo(self):
print(self.age)
먼저 상속할 2개의 클래스를 만들어줍니다.
각각 생성자 메소드, attack과 printInfo메소드는 똑같고
Human 클래스에는 eat메소드를 추가해두었습니다.
그다음은 상속받을 클래스를 만들어줄건데요.
class Ironman(Avengers, Human):
def __init__(self,realName,age):
Avengers.__init__(self, realName)
Human.__init__(self, age)
def attack(self):
Avengers.attack(self)
Human.attack(self)
def printInfo(self):
Avengers.printInfo(self)
Human.printInfo(self)
이때 상속받을 2개의 클래스를 파라미터로 넣고
각각 상속받을 메소드를
해당 객체.메소드를 선언하여 불러와줍니다.
이때 다중 상속이기 때문에
상속받을 클래스의 메소드를 전부 불러와줘야합니다.
if __name__ == "__main__":
i = Ironman("토니스타크", 40)
i.attack()
i.eat()
i.printInfo()
이제 2클래스에서 모두 상속이 잘 받아졌는지 확인해볼까요?
두 클래스의 메소드가 모두 상속받아져서
실행이되는 모습입니다.
파이썬의 객체지향 기능인 다중 상속에 대해서 알아봤습니다.
'Python' 카테고리의 다른 글
[Python] f-string (0) | 2025.03.06 |
---|---|
[Python] 예외처리 (1) | 2025.03.06 |
[Python] 상속과 오버라이딩 (0) | 2025.03.06 |
[Python] Class (0) | 2025.03.05 |
[Python] Up Down 게임 (0) | 2025.03.05 |