상속 (Inheritance)
객체지향 (상속: Inheritance)
- 여러 클래스에 중복되는 속성, 메서드를 하나의 클래스로 작성하는 것을 추상화라고 함
- 기본 클래스의 공통된 기능을 상속받고 다른 부분만 수정하는 것을 상속이라고 함
- 위의 경우에서 기본 클래스는 부모 클래스, 기본 클래스의 기능을 상속받는 클래스를 자식 클래스라고 함
- 부모 클래스가 둘 이상일 수 있으며, 그것을 다중 상속이라고 함
class Enemy:
def __init__(self, name, color):
self.name = name
self.color = color
class Fairy(Enemy):
def set_stat(self, health, speed):
self.__health = health
self.__speed = speed
def get_info(self):
print(self.name = name, self.color = color, self.__health, self.__speed)
‘name’, ‘color’ 속성을 가진 ‘Enemy’ 클래스를 ‘health’, ‘speed’ 속성을 가진 ‘Fairy’ 클래스에 상속시켜줌
Red_Fairy = Fairy('tina', 'red')
Red_Fairy.set_stat(100, 4)
Red_Fairy.get_info
‘Red_Fairy’ 오브젝트의 ‘name’을 ‘tina’로, ‘color’를 ‘red’로, ‘health’를 100으로, ‘speed’를 4로 설정
그 후 그것들을 출력
- 함수 issubstance(‘classname1’, ‘classname2’)는 두 클래스가 상속 관계인가를 확인함
issubstance(Fairy, Enemy)
‘Red_Fairy’ 오브젝트가 ‘Enemy’ 클래스와 상속 관계인지 확인
- 함수 isinstance(‘objectname’, ‘classname’)는 오브젝트와 클래스가 상속 관계인가를 확인함
isinstance(Red_Fairy, Fairy)
‘Red_Fairy’ 오브젝트가 ‘Fairy’ 클래스와 상속 관계인지 확인