c#中override和new的区别

class Program
    {
        static void Main(string[] args)
        {
            ParentClass test = new SubClass();
            test.doSomething();
/*结果:
ParentClass
SubClass
doSomething in ParentClass
*/
        }
    }

    class ParentClass
    {
        public ParentClass()
        {
            Console.WriteLine("ParentClass");

        }
        public virtual void doSomething() {
            Console.WriteLine("doSomething in ParentClass");
        }
    }

    class SubClass:ParentClass
    {
        public SubClass()
        {            
            Console.WriteLine("SubClass");
        }
        public new void doSomething() {
            Console.WriteLine("doSomething in SubClass");
        }
    }
class Program
    {
        static void Main(string[] args)
        {
            ParentClass test = new SubClass();
            test.doSomething();
/*
结果:
ParentClass
SubClass
doSomething in SubClass
*/
        }
    }

    class ParentClass
    {
        public ParentClass()
        {
            Console.WriteLine("ParentClass");

        }
        public virtual void doSomething() {
            Console.WriteLine("doSomething in ParentClass");
        }
    }

    class SubClass:ParentClass
    {
        public SubClass()
        {            
            Console.WriteLine("SubClass");
        }
        public override void doSomething() {
            Console.WriteLine("doSomething in SubClass");
        }
    }

 

posted @ 2015-12-11 16:45  Jane&Coding  阅读(169)  评论(0)    收藏  举报