# 부모 : 자식이 모두 가지는 공통된 속성(attribute)을 모두 여기에서 정의
class Computer:
def __init__(self, cpu, ram):
self.cpu = cpu
self.ram = ram
def calculate(self):
print('컴퓨터 계산중')
def __str__(self):
return '나는 컴퓨터입니다. '
# 부모클래스 computer를 상속받은 Notebook 클래스 정의
class Notebook(Computer):
def __init__(self, cpu, ram, touch='normal', cam='small'):
# 1. 클래스 이름으로 접근
Computer.__init__(self, cpu, ram)
self.touch = touch
self.cam = cam
def calculate(self): # 오버라이딩 - 같은 이름의 함수가 있으면 자식의 함수가 우선
print('노트북 계산중')
def __str__(self):
return super(Notebook, self).__str__() + '그리고 난 노트북이죠!'
# 부모클래스 computer를 상속받은 Desktop 클래스 정의
class Desktop(Computer):
def __init__(self, cpu, ram, external_graphic = "Geforce"):
# 2. super()로 접근
super(Desktop, self).__init__(cpu, ram)
# super(type, obj) -> bound super object; requires isinstance(obj, type)
self.external_graphic = external_graphic
def calculate(self): # 오버라이딩
print('데스크탑 계산중')
def __str__(self):
return super().__str__() + '그리고 난 데스크탑이죠!'