public abstract class Character
{
protected Weapon weapon;
public string Name;
public int Health = 10;
public int Strength;
public Character()
{
}
public void Attack()
{
weapon.useweapon();
}
}
public class Warrior : Character
{
public Warrior()
{
weapon = new Sword();
Health = 10;
Strength = 25;
}
public void SetWeapon(Weapon newweapon)
{
weapon = newweapon;
}
}
public class Wizard : Character
{
public Wizard()
{
weapon = new Spell();
Health = 15;
Strength = 10;
}
}
ご覧のとおり、抽象Characterクラスと2つのCharacterサブクラスがあります。このプログラムでは、戦士だけが武器を変更できます。今、私はコード自体について議論するつもりはありません。私が知りたいのは、実装コードでなぜこれを使用するのかということです。
Character Zizo = new Warrior();
Character Hang = new Wizard();
それ以外の -
Warrior Zizo = new Warrior();
Wizard Hang = new Wizard();
Zizo.SetWeapon(new Axe()); //I can only use this method in this implementation
この2つの違いは何ですか?また、抽象クラスでオブジェクトを宣言することでどのようなメリットがありますか?