Python

Python 문법 기초 28 - class 다중 상속

코딩탕탕 2022. 10. 22. 17:10

 

# 다중 상속 : 순서가 중요

class Tiger:
    data = '호랑이 세상'
    
    def cry(self):
        print('호랑이는 어흥')
        
    def eat(self):
        print('맹수는 고기를 좋아함')
        
class Lion:
    def cry(self):
        print('사자는 으르렁')
        
    def hobby(self):
        print('백수의 왕은 낮잠을 즐김')
        
class Liger1(Tiger, Lion): # 다중 상속(먼저 적어준 클래스에 우선순위가 있다.)
    pass

a1 = Liger1()
a1.cry()
a1.eat()
a1.hobby()
print(a1.data)


<console>
호랑이는 어흥
맹수는 고기를 좋아함
백수의 왕은 낮잠을 즐김
호랑이 세상

다중 상속은 메소드가 같은 이름의 부모 클래스를 상속받으면 인자에 먼저 적어준 클래스에 우선순위가 있다.

 

class Liger2(Lion, Tiger):
    data = '라이거 만세'
    
    def hobby(self):
        print('라이거는 자바를 좋아함')
        
    def showData(self):
        print(self.data, ' ', super().data)
        self.hobby()
        super().hobby()
        
        
a2 = Liger2()
a2.cry()
a2.hobby()
a2.showData()


<console>
사자는 으르렁
라이거는 자바를 좋아함
라이거 만세   호랑이 세상
라이거는 자바를 좋아함
백수의 왕은 낮잠을 즐김