很久都没写BLGO了,关于多态的第3篇文章一晃就1年了才写。有时比较迷茫,感觉太多东西都要学,什么都想学,却找不清方向了。呵呵,看着好多牛人的BLOG觉得自己水平实在是太差了。呵呵。有时甚至觉得自己写的东西太低级了。呵呵,或许是自己抱怨太多了,还是静下心来慢慢学习吧。以后一定多写一些东西,自己经常看看还是挺有帮助的。

如果大家对多态的机制还不了解,可以先查看上面这2篇文章。本篇本打算使用一些例子说话,但是实际大家明白了方法表的布局结构。其实是根本不需要任何实例去讲解了。所以这一篇主要算是查缺补漏吧。

 

 

一 多态的例子

 

class Program
    {
        static void Main(string[] args)
        {
            Cpu c1 = new Cpu();
            c1.fun();
            Cpu c2 = new IntelCpu();
            c2.fun();
            Cpu c3_1 = new NewCpu();
            c3_1.fun();
            NewCpu c3_2 = new NewCpu();
            c3_2.fun();
            Console.ReadKey();
        }
    }
    class Cpu
    {
        public virtual void fun()
        {
            Console.WriteLine("This is Cpu");
        }
    }
    class IntelCpu : Cpu
    {
        public override void fun()
        {
            Console.WriteLine("This is IntelCpu");
        }
    }
    class NewCpu : Cpu
    {
        public new void fun()
        {
            Console.WriteLine("This is NewCpu");
        }
    }

这个例子,主要是为了解释上一篇中遗留的new关键字时候的问题。我们主要从两个方面来讲解这个列子:

继续阅读