共有方法:都能和玩家交互(交谈)。 //1.创建父类NPC.cs
enum NPCType
{
Task,
Shop
}
abstract class NPC
{
private string name;
private NPCType type;
public string Name
{
get { return name; }
set { name = value; }
}
public NPCType Type
{
get { return type; }
set { type = value; }
}
public NPC(string name, NPCType type)
{
this.name = name;
this.type = type;
}
public abstract void Speak();
}
//2.创建子类:任务NPC TaskNPC.cs
private string taskInfo;
public TaskNPC(string taskInfo, string name, NPCType type) : base(name, type)
{
this.taskInfo = taskInfo;
}
public override void Speak() //此处抽象方法重写,在class TaskNPC:NPC 处,鼠标右键NPC --〉实现抽象类.
{
Console.WriteLine("NPC:{0},任务:{1}", base.Name, taskInfo);
}
//3.创建子类:商人NPC ShopNPC.cs
class ShopNPC:NPC
{
private string item;
public ShopNPC(string item, string name, NPCType type):base(name, type)
{
this.item = item;
}
public override void Speak()
{
Console.WriteLine("NPC:{0},贩卖{1}", base.Name, item);
}
}
//4.主程序测试. Program.cs
TaskNPC npc1 = new TaskNPC("去野外挖2根萝卜", "小白兔", NPCType.Task);
npc1.Speak();
ShopNPC npc2 = new ShopNPC("食物", "商人", NPCType.Shop);
npc2.Speak();
Console.ReadKey();