分享到: 百度 更多

new 和 override 的区别

new是继承类对基类方法的重写而在继承类中产生新的方法,这时基类方法和继承方法之间没有任何的关系了,可是override就不同了,它也是对基类中方法的重写,但此时只是继承类重写了一次基类的方法。

 

下面给大家举个例子:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Test
{
    class A
    {
        public virtual void Test()
        {
            Console.WriteLine("A");
        }
    }
    class A1 : A
    {
        public override void Test()
        {
            Console.WriteLine("A1");
        }
    }
    class A2 : A
    {
        public new void Test()
        {
            Console.WriteLine("A2");
        }
    } 
 
 
    class Program
    {
        static void Main(string[] args)
        {
            A a1 = new A1();
            A a2 = new A2();

            a1.Test();
            a2.Test();
            (a2 as A2).Test();

            Console.Read(); 

        }
    }
}

 

 

 

posted @ 2012-07-23 23:52  黑马_Summer  阅读(176)  评论(0编辑  收藏  举报
分享到: 百度 更多