最近在琢磨c#的时候,经常发现类似这样的例子: public class people { //代码略 } public class man : people { //代码略 } public class Apply { people Person=new man(); ... } 我想问一下,在实际的编程中,会有这样的需要吗?请有经验的人说说看.
有这样的需要的,比如People类有一个Run方法,Man和Woman这两个类都是继承自People的类,并且都重写(override)了Run这个方法(男人女人跑起步来不一样). 现在有一群人一起跑步,有男人有女人. 我们可以把这些都装进一个People数组(假设为peoples). 然后 foreach(People p in peoples) { p.Run(); } 由于多态性,在调用p.Run()的时候p对象本身如果是男人就会自动调用男人的Run方法,是女人就会调用女人的Run方法. 还有许多地方需要用到多态性的,建议你记住,以后遇到了自然就想通了.