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サブクラスがあります。このプログラムでは、戦士だけが武器を変更することができます。ある何オブジェクトを、それ自身のクラスの代わりに継承した抽象クラスで宣言する理由
Warrior Zizo = new Warrior();
Wizard Hang = new Wizard();
Zizo.SetWeapon(new Axe()); //I can only use this method in this implementation
-
Character Zizo = new Warrior();
Character Hang = new Wizard();
の代わりに:さて、私はコード自体を議論するために探していないよ、私はこれを使用する理由、私が知りたいことは、私の実装コードでは、両者の違いと、抽象クラスでオブジェクトを宣言することで得られるメリットは何ですか?
OOの概念をしっかりと把握していないような音がします。そのテーマに関する本を読むのに少し時間を費やす価値があるかもしれません。 – R0MANARMY
なぜそう思うか教えてください。 – Zizo47