码迷,mamicode.com
首页 > Windows程序 > 详细

C# 基础 new 、override实现多台区别

时间:2015-06-30 00:01:43      阅读:287      评论:0      收藏:0      [点我收藏+]

标签:

一、new只是隐藏父类中的同名方法。基类和父类中都存在这个方法。

 

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            BaseClass bcdc = new DerivedClass();
            bcdc.Method2(); //结果:Base - Method2
            Console.Read();
        }
        public class BaseClass
        {
            public void Method2()
            {
                Console.WriteLine("Base - Method2");
            }
        }
        public class DerivedClass : BaseClass
        {
            public new void Method2() //在子类中隐藏了父类的这个方法,父类总还存在这个方法。
            {
                Console.WriteLine("Derived - Method2");
            }
        }
    }
}

 二、override.在子类中重写父类的相同方法名。父类只能用 abstract、virtual修饰。

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            BaseClass bcdc = new DerivedClass();
            bcdc.Method2(); //结果: Derived - Method2
            Console.Read();
        }
        public class BaseClass
        {
            public virtual void Method2()
            {
                Console.WriteLine("Base - Method2");
            }
        }
        public class DerivedClass : BaseClass
        {
            public override void Method2() //重写了父类的方法
            {
                Console.WriteLine("Derived - Method2");
            }
        }
    }
}

  

C# 基础 new 、override实现多台区别

标签:

原文地址:http://www.cnblogs.com/huaan011/p/4609103.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!