쿨가이두번째삶

파이썬공부 13 상속_super(), 다중상속,메소드오버라이딩 본문

개발,coding/Python파이썬

파이썬공부 13 상속_super(), 다중상속,메소드오버라이딩

쿨가이두번째삶 2022. 12. 6. 16:04
728x90
반응형

상속

<<  코딩할 때 똑같은 수식을 매번 여러 번 넣기엔 불편하므로 부모 & 자식으로 나눠서 처음에 부모에 수식을 넣었던 것을

자식에서 코딩할 때 그대로 따서 쓰면 되기 때문에 작업이 빠르고 수월해진다

ex)


#부모클래스
class BlackBox:
    def__init__(self, name, price):
    self.name=name
    self.price=price


#자식클래스
class TravelBlackBox(BlackBox):
    # def__init__(self, name, price,sd):
    # self.name=name
    # self.price=price
    BlackBox.__init__(self, name, price)
    self.sd=sd

def set_travel_mode(self, min):
    print(str(min)+'분 동안 여행모드ON')
 

#이렇게 FULL로 '부모 클래스' BlackBox를 집어넣고  메서드를 호출할 수도 있지만, 

"super()"를 활용해서 메서드를 호출할 수도 있다,  super = 부모 클래스 

ex)


#부모클래스
class BlackBox:
    def__init__(self, name, price):
    self.name=name
    self.price=price


#자식클래스
class TravelBlackBox(BlackBox):  
    # def__init__(self, name, price,sd):    #부모 클래스와 동일한 수식을 생략한다 
    # self.name=name                            
    # self.price=price
    super()__init__(name, price)  #이때 'self'는 빠진다
    self.sd=sd

def set_travel_mode(self, min):
    print(str(min)+'분 동안 여행모드ON')
 
 

 

다중 상속

여러개의 클래스로부터 필요한 값들을 다중 상속 받는것

* 상속은 여러 개의 클래스로부터 상속받을수 있다

* 메소드내에서 siper()를 통해 부모 클래스의 메소드에 접근 할 수있다

* 다중 상속은 클래스명 뒤의 괄호 속에 여러개의 클래스를 " , " 를 통해 구분한다

* 상속을 이용하면 코드의 중복없이 부모 클래스의 기능을 그대로 이용할 수 있다 

 

메소드 오버라이딩

 

>>부모클래스에서 상속받은 메소드를 자식클래스에서 다시 정의하는것.(상속받은것을 수정)

 

부모클래스로부터 상속 받은 메소드를 그대로 쓰면 

>> 부모 클래스의 값을 그대로 사용하는것이고 

 

부모클래스로부터 상속받은 메소드를 자식 클래스에서 수정하면

>> 자식클래스의 메소드를 사용하게된다

 

 

728x90
반응형