当我们要处理一堆实体类时,往往判断某个属性值,做不同的操作,比如某食品加工厂
面包类,苹果类,鱼类
如果是面包 加工面包的方法 如果是苹果 加工苹果的方法 如果是鱼类 加工鱼类的方法
这样,程序会有一堆if,else和一堆方法
换个思维 一个基类叫食品,里面有个方法叫加工食品,面包类,苹果类,鱼类都继承它,实现自己的加工方法 食品类=new 面包类 面包类.加工方法 这样就行了,实例代码 static void Main(string[] args) { Class1 A = new Class2() { a = 1, b = 2 }; Class1 B = new Class3() { a = 2, b = 3 }; Class1 C = new Class4() { a = 1, b = 3, c = 3 }; List<Class1> list = new List<Class1>(); list.Add(A); list.Add(B); list.Add(C); foreach (Class1 c in list) { Console.WriteLine(c.doit()); } Console.ReadLine(); } public class Class2:classtest.Class1 { public int a { get; set; } public int b { get; set; } public override int doit() { return a+b; } } public class Class3 : classtest.Class1 { public int a { get; set; } public int b { get; set; } public override int doit() { return a - b; } } public class Class4 : classtest.Class1 { public int a { get; set; } public int b { get; set; } public int c { get; set; } public override int doit() { return a - b+c; } }
这利用了子类继承了父类,返回父类,同时保存子类的所有信息的特点.