修饰符new与override

时间:2022-03-09 21:06:26

new:在作为修饰符时,可以隐藏从父类的继承的成员。

override:修改父类的方法、属性。

上代码比较清楚:

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

namespace ConsoleApplication2
{
    public class BaseClass
    {
        public virtual void Show1()
        {
            Console.WriteLine("1");
        }
        public void Show2()
        {
            Console.WriteLine("2");
        }
        public void Show12()
        {
            Show1();
            Show2();
        }
    }
    public class TestClass : BaseClass
    {
        public override void Show1()
        {
            Console.WriteLine("11");
        }
        public new void Show2()
        {
            Console.WriteLine("22");
        }
    }
    class Program
    {
        static void Main(string[] args)
        {
            TestClass testClass = new TestClass();
            testClass.Show1();
            testClass.Show2();
            testClass.Show12();
            BaseClass baseClass = new TestClass();
            baseClass.Show1();
            baseClass.Show2();
            baseClass.Show12();
            Console.ReadLine();
        }

    }
}

执行结果:

修饰符new与override