작성
·
209
답변 1
1
그러면 Player* p = new Knight();는 Knight가 Player을 상속 받고, Knight라는 원본 객체를 담고 있는 Player타입이라는 의미인데, Knight라는 원본 객체를 선언한 이유가 있을까요?? 어차피 Player가 담고 있는 부분만 접근할 수 있으니까요..
캐스팅(Knight*)하면 Knight 부분도 접근이 가능합니다.
이렇게 하는 이유는 각종 타입을 Player로 모아서 관리하기 위함입니다.
(Knight, Archer, Mage ...)
강의 어딘가에서 이 내용은 설명을 했을텐데 어느 부분인지 기억이 가물가물하네요.
중요한 내용이니 한참 더 고민해보시기 바랍니다.
그러면 player타입 변수지만 Knight라는 원본 객체를 의미하기 때문에 class를 Knight로 선언해 담고 있는 정보들을 사용할 수 있는 건가요?