在子类中重写父类中的某个函数和使用new定义一个同名的函数有什么区别?

解决方案 »

  1.   

    new 重定义一个函数,返回类型可与继承的不一样
    重写必须和父类一个鸟样
      

  2.   

    楼上正解...
    new是覆盖...两者没有任何关系
      

  3.   

    参考:        static void Main(string[] args)
            {
                BaseClass dc11 = new DerivedClass1();
                DerivedClass1 dc12 = new DerivedClass1();
                BaseClass dc21 = new DerivedClass2();
                DerivedClass2 dc22 = new DerivedClass2();
                dc11.Method();
                dc12.Method();
                dc21.Method();
                dc22.Method();
            }        class BaseClass
            {
                public virtual void Method()
                {
                    Console.WriteLine("base");
                }
            }        class DerivedClass1:BaseClass
            {
                public override void Method()
                {
                    Console.WriteLine("DerivedClass1");
                }
            }        class DerivedClass2 : BaseClass
            {
                public new void Method()
                {
                    Console.WriteLine("DerivedClass2");
                }
            }