개발,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
반응형