/ OOP

상속 (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’ 클래스와 상속 관계인지 확인

-->