谁能解释解释多态和简单工厂,虽然课上老师讲了,但是很多东西还是不理解...抽象类的应用,还有简单工厂的应用...
解决方案 »
- 如何读取datagridview中DataGridViewComboBox中DisplayMember中的列值
- 用C#编写的Windows服务程序,如何指定以某个账户运行?
- 登陆集成域验证
- 怎么取某行某列的值.注ds.Tables[0].Rows[0][0]取不到第一行第一列,
- 极其难的SOCKET问题!!
- .NET中有程序存储区么,函数执行时内存是怎么样的,请达人们指教。
- 请教xml文件导入SQl的方法?给50分啦~
- 动态数组
- 有什么专门介绍用c#开发windwos窗体程序的教材?
- SOS!!!怎样传参数到<%# DataBinder.Eval(Container.DataItem, "Col"+i.ToString())%>
- 求可以快速导出数据到excel代码
- 再论闭包
然后使用简单工厂的模式根据你输入的值,进行判断到底这个父类要NEW哪一个子类,最后由父类带出
就这么简单
public class CarS
{
public virtual void Say()
{
Console.WriteLine("");
}
} public class car : CarS
{
public override void Say()
{
Console.WriteLine("I am a Car");
}
} public class BigCar : CarS
{
public override void Say()
{
Console.WriteLine("I am a BigCar");
}
} public class SimpleFactory
{
public static CarS Choose(string type)
{
CarS ss = null;
switch (type)
{
case "小汽车":
ss = new car();
break;
case "大汽车":
ss = new BigCar();
break;
}
return ss;
}
}
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Programm Started:");
Console.WriteLine("---------------------------------------");
Console.WriteLine(""); string strClass = "小汽车";
CarS myCar = SimpleFactory.Choose(strClass);
myCar.Say();
Console.WriteLine("");
Console.WriteLine("---------------------------------------");
}
}
一般情况下就是根据参数数据返回一个适当的子类,然后用基类或接口引用具体的对象,而不用考虑该实际对象的产生过程.多态实现
http://topic.csdn.net/u/20091017/21/95c1915d-2903-4eb0-903a-9b705efbf246.html?81529