[TIL-11] 상위클래스의 인스턴스가 하위클래스에서 지정한 정보를 저장할수 있을까?

우소라·2023년 3월 27일
1


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개 더 있는 상태

  1. 내가 시도한 것
    처음에
th = Thief(name, hp, power, mp, magic_power, j)

라고 저장했는데 실행부에서 호출하기 힘들어서 th를 기존에 생성했던 ch로 바꿔봤다.
오류 하나도 안뜨고 실행 너무 잘돼서 어떤 원리인지 궁금했다.

  1. 해결

    상속에서 상위 클래스는 어디서 파생된건지 알고있기 때문에 하위클래스 접근이 가능해서 Thief의 속성인 j도 저장이 잘 되는 것이다.

  2. 알게된 점
    -하위클래스의 속성을 상위클래스는 다 알고있음

0개의 댓글

관련 채용 정보