1. 어떤 문제가 있었나?
class Character:
"""
모든 캐릭터의 모체가 되는 클래스
"""
def __init__(self, name, hp, power, mp, magic_power):
self.name = name
self.max_hp = hp
self.hp = hp
self.power = power
self.max_mp = mp
self.mp = mp
self.magic_power = magic_power
ch = Character(name, hp, power, mp, magic_power)
ch = Thief(name, hp, power, mp, magic_power, j)
ch는 Character의 인스턴스인데 Thief라는 하위 클래스의 인스턴스의 정보도 저장이 되어서 이상하다고 생각했다.
하위 클래스는 Thief 포함해서 2개 더 있는 상태
th = Thief(name, hp, power, mp, magic_power, j)
라고 저장했는데 실행부에서 호출하기 힘들어서 th를 기존에 생성했던 ch로 바꿔봤다.
오류 하나도 안뜨고 실행 너무 잘돼서 어떤 원리인지 궁금했다.
해결
상속에서 상위 클래스는 어디서 파생된건지 알고있기 때문에 하위클래스 접근이 가능해서 Thief의 속성인 j도 저장이 잘 되는 것이다.
알게된 점
-하위클래스의 속성을 상위클래스는 다 알고있음