본문 바로가기

Python

[Python] 다중 상속

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