日期:2014-05-18  浏览次数:20818 次

重写一定要声明为virtual吗?
我看说上是这么说的,要重写父类的方法必须声明为virtual虚方法。而子类必须声明为override。但实际上我在vs2005中却没有使用这个声明直接就可以重写了。就与java中重写一样。例如:
    public   class   king
        {
                public   void   run()
                {
                        Console.WriteLine( "king ");
                }
        }
        public   class   great   :   king
        {

                public   void   run()
                {
                        Console.WriteLine( "great ");
                }
        }
其实我认为这样可能更方便些,声明virtual完全是多余的。java没有用这个东东不是一样用的很好吗!
我想问的是这个声明virtual的要求是不是针对vs2003.或者是frame   work1.1的?又或者是在什么特定的场合用呢?

------解决方案--------------------
要扩展或修改继承的方法、属性、索引器或事件的抽象实现或虚实现,必须使用 override 修饰符。

如果不使用override就是隐藏基类的方法,此时不能实现多态。