Python

상속 이해하기

hs_developer 2022. 3. 14. 13:24
# super, 부모
# sub, 자식


class ParentRestaurant:
    price = 15000

    def __init__(self, name, menu, recipe):
        self.name = name
        self.menu = menu
        self.recipe = recipe

    def __str__(self):
        return "가게 이름 : {}, 가게의 메뉴 : {}, 메뉴의 조리법 : {}".format(self.name, self.menu, self.recipe)

    def __del__(self):
        pass

class ChildRestaurant(ParentRestaurant):
    price = 20000 # 재정의, 오버라이딩
   
    # 상속
    def __init__(self, name, menu, recipe, marketing):
        ParentRestaurant.__init__(self, name, menu, recipe)
        self.marketing = marketing

    def __str__(self):
    return super().__str__() + ", 마케팅 방법 : {}".format(self.marketing) # 상속

restaurant_info = ChildRestaurant("자식의 가게", "붕어빵", "붕어빵을 굽는다.", "온라인")
print(restaurant_info)

 

# 결과 값
가게 이름 : 자식의 가게, 가게의 메뉴 : 붕어빵, 메뉴의 조리법 : 붕어빵을 굽는다., 마케팅 방법 : 온라인

 

 

# childrestaurant가 parentrestaurant의 하위 클래스인지 확인
print(issubclass(ChildRestaurant, ParentRestaurant)) 

# 결과 값
True