C#中override与new的区别

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

namespace Demo
{
    // 基类
    public class ParentClass
    {
        public ParentClass()
        {
            Console.WriteLine("在基类的构造方法");
        }

        // 用virtual才可以在子类中用override,而new不需要这样
        public virtual void Method()
        {
            Console.WriteLine("基类的方法Method()");
        }
    }

 

    // 继承基类
    public class ChildClass1 : ParentClass
    {
        public ChildClass1()
        {
            Console.WriteLine("ChildClass1的构造方法");
        }

        // 使用override,是说把基类的方法重新定义
        public override void Method()
        {
            Console.WriteLine("ChildClass1的方法Method() use override");
        }
    }

 

    // 继承基类

    public class ChildClass2 : ParentClass
    {
        public ChildClass2()
        {
            Console.WriteLine("ChildClass2的构造方法");
        }
       

        // 使用new,不是说用到基类的方法,而是重新定义一个子类方法,基方法是否virtual无所谓
       // 只不过方法名称与基类相同
        new public void Method()
        {
            Console.WriteLine("ChildClass2的方法Method() use new");
        }
    }

    class Program
    {
        static void Main(string[] args)
        {
            // 用override子类加框一个基类对象句柄
            // 输出:在基类的构造方法 ChildClass1的构造方法;
            ParentClass Parent = (ParentClass)new ChildClass1();

           

            // 输出:ChildClass1的方法Method() use override
            Parent.Method();


            // 用new子类加框一个基类对象句柄
            // 输出:在基类的构造方法 ChildClass2的构造方法;
            ParentClass NewParent = (ParentClass)new ChildClass2();

           

            // 输出:基类的方法Method()
            NewParent.Method();

           

            // 一个子类句柄
            // 输出:在基类的构造方法 ChildClass2的构造方法;
            ChildClass2 NewParent1 = new ChildClass2();

           

            // 输出:ChildClass2的方法Method() use new
            NewParent1.Method();

            Console.ReadLine();

        }
    }
}

 

 

原帖地址:http://adyhpq.blog.163.com/blog/static/3866700201011238430222/

 

posted on 2012-06-20 08:04  zhuhai  阅读(177)  评论(0)    收藏  举报

导航

我的百度空间