我覺得我應該只需要有一個實例變量引用一個對象。但在下面的代碼中,我有兩個實例變量「_character」和「_witch」引用同一個對象。如果我添加一個更專業的女巫班,我不得不添加第三個實例變量。
這是典型的人們在這種情況下做什麼?或者有沒有一種方法只用一個參考來實現呢?另外,我真的不想投入任何東西(除非在這種情況下確實是最好的做法)。如何在沒有引用同一個對象的多個實例變量的情況下實現繼承?
在擴展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 – 2014-09-05 20:47:01
@JustinPihony我想象他想訪問'WhichState'的成員,這在'CharacterState'中沒有定義,並且他不想在每次調用時都進行轉換。 – 2014-09-05 20:49:28
@NathanA是的。 – Kacy 2014-09-05 20:53:11