클래스 상속
class Parent:
def __init__(self):
print("Parent 클래스의 생성자 호출")
def parent_method(self):
print("Parent 클래스의 메서드 호출")
class Child(Parent):
def __init__(self):
print("Child 클래스의 생성자 호출")
Python
복사
super()
•
super()
•
super().메서드()
•
super()는 부모 클래스의 메서드를 호출할 때 사용
•
super()는 다중 상속 시에 사용하면 특정 순서로 호출 가능
class Character:
def __init__(self):
self.health = 100
def move(self):
print("캐릭터가 이동합니다.")
class Warrior(Character):
def __init__(self):
super().__init__()
print("전사 클래스의 생성자 호출")
def attack(self):
print("전사가 공격합니다.")
Python
복사
Override
•
부모로부터 받은 메소드 또는 속성을 수정하고 싶을 때 자식 클래스에서 재정의
•
예제
class PlayerCharacter:
def __init__(self,hp=100,exp=0):
self.hp = hp
self.exp = exp
def attack(self):
print("공격하기")
self.exp = self.exp + 2
def defend(self):
print("방어하기")
self.exp = self.exp + 1
class Wizard(PlayerCharacter): # 상속 받기
def __init__(self,mp):
super().__init__() # 부모클래스의 생성자를 실행하겠다.
self.mp = mp
def magic_skill(self):
print("마법 공격하기")
self.mp = self.mp - 2
# 메소드 오버라이딩
def defend(self):
print("마법사가 방어하기")
self.exp = self.exp + 3
Python
복사