하나의 인스턴스 변수 만 객체를 참조해야한다고 생각합니다. 그러나 아래 코드에서 같은 개체를 참조하는 "_character"및 "_witch"인스턴스 변수가 2 개 있습니다. 좀 더 특수한 마녀 클래스를 추가하면 세 번째 인스턴스 변수를 추가해야합니다.
이것은 일반적으로 사람들이이 상황에서 수행하는 것입니까? 아니면 단 하나의 참조를 사용하여 이것을 달성 할 수있는 방법이 있습니까? 또한, 정말로 (이 시나리오에서 실제로 가장 좋은 방법이 아닌 한) 어떤 것도 캐스팅하지 않으려합니다.같은 개체를 참조하는 여러 인스턴스 변수없이 상속을 구현하는 방법은 무엇입니까?
AnimationController를 확장하는 WitchAnimationController 위에 WitchState가 CharacterState를 확장합니다.
기본 클래스 :
public class AnimationController
{
protected CharacterState _character;
public AnimationController(CharacterState character)
{
_character = character;
}
public void UpdateAnimations()
{
/* call on some CharacterState functions... */
}
}
아이 클래스 :
public class WitchAnimationController : AnimationController
{
protected WitchState _witch; //inherits from CharacterState
public AnimationController(WitchState witch) : base(witch)
{
_witch = witch;
}
public void UpdateAnimations()
{
base.UpdateAnimations();
/* call on some WitchState functions... */
}
}
? 그것은 이미 _character에 저장되어 있습니다. –
@JustinPihony 저는'CharacterState'에 정의되지 않은'WhichState'의 멤버에 액세스하려고하고 있으며 모든 호출에 대해 캐스트를하고 싶지 않다고 생각합니다. –
@ NathanA 네, 맞습니다. – Kacy