728x90
반응형
# 파이썬 다중상속
# 예제1
# 상속 기본
# 슈퍼클래스(부모) 및 서브클래스(자식) -> 모든 속성, 메소드 사용 가능
# 상속을 통해 코드의 생산성, 가독성, 재사용성
class Ramen:
"""Parent Class"""
def __init__(self, comp, value):
self.comp = comp
self.value = value
def show(self):
return 'Ramen class "Show Method!"'
class Ottogi(Ramen):
"""Sub Class"""
def __init__(self, name, comp, value):
super().__init__(comp,value)
self.name = name
def show_model(self) -> None: # Return 없다는 표시
return "Your Ramen Name : %s" %self.name
class Nongshim(Ramen):
"""Sub Class"""
def __init__(self, name, comp, value):
super().__init__(comp,value)
self.name = name
def show_model(self) -> None: # Return 없다는 표시
return "Your Ramen Name : %s" %self.name
def show(self): # 부모한테도 있는 메소드
return 'Ramen Info : %s %s %s' %(self.name, self.comp, self.value)
# 일반 사용
model1 = Ottogi('진라면','Ottogi','soup')
print(model1.comp) # super
print(model1.value) # super
print(model1.name) # sub
print(model1.show()) # super
print(model1.show_model()) #sub
print(model1.__dict__)
print('-'*50)
# 메소드 오버라이딩
model2 = Nongshim('신라면','Nongshim','soup')
print("메소드 오버라이딩 예 : ", model2.show()) # 부모에서도 존재하지만 자식(서브)클래스에서 다시 메소드 선언을 해서 사용 # 오버라이딩
print(model2.comp)
print(model2.name)
print(model2.value)
print(model1.__dict__)
728x90
반응형
최근댓글