开发工具VS.NET 语言c#
捕获需求V0.0.0.1:开发一个鸭子仿真游戏,要求可以游泳,可以呱呱叫,可以展示在屏幕上,并且在只有绿头鸭MallardDuck和红头鸭RedHeadDuck两种
分析:
由于绿头鸭和红头鸭,唯一区别只有显示在屏幕上时颜色不同,因此类图设计如下:
其中,由于只有display()方法是不同的,其余两个方法均为相同,因此将display()方法定义为虚方法,在各自的子类中实现,而对于quack()和swim()方法则完全继承至超类。代码如下:
超类:
public abstract class Duck
{
public void quack()
{
Console.WriteLine("我呱呱叫");
}
public void swim()
{
Console.WriteLine("我可以游泳");
}
public abstract void display();
}
绿头鸭子类:
public class MallarDuck:Duck
{
public override void display()
{
Console.WriteLine("我显示为绿头鸭");
}
}
红头鸭子类:
public class RedHeadDuck:Duck
{
public override void display()
{
Console.WriteLine("我显示为红头鸭");
}
}
测试类:
class Program
{
static void Main(string[] args)
{
#region 测试绿头鸭
MallarDuck md = new MallarDuck();
md.display();
md.quack();
md.swim();
#endregion
#region 测试红头鸭
RedHeadDuck rd = new RedHeadDuck();
rd.display();
rd.quack();
rd.swim();
#endregion
Console.ReadKey();
}
}
显示为:
到此为止,对于需求V0.0.0.1,这个设计还不错……