点点滴滴访问量:
 

方法隐藏

          在派生类中定义一个与基类方法同名的方法,并不会引发错误,而是派生类中的方法隐藏了基类中的同名方法。实际上,我们常常不希望隐藏方法,因为隐藏方法后,可能导致出现不期望的结果。如下面:语句MyClass c2 = new MySubClass()创建了一个MySubClass类的实例,但是使用c2.Hello()输出的却是“Hello,MyClass!,而不是“Hello, MySubClass!

 

using System;

 

namespace ffyincang

{

   

    class Class1

    {

       

        [STAThread]

        static void Main(string[] args)

        {

            MyClass c1 = new MyClass();

            MyClass c2 = new MySubClass();

            MySubClass c3 = new MySubClass();

            Console.WriteLine(c1.Hello ());//这里输出为 Hello, MyClass!

            Console.WriteLine(c2.Hello());//这里输出为Hello, MyClass!

            Console.WriteLine(c3.Hello());//这里输出为 Hello, MySubClass!是因为子类中的方法隐藏了基类中的同名方法

        }

    }

 

    class MyClass

    {

        public string Hello()

        {

            return "Hello, MyClass!";

        }

    }

    class MySubClass : MyClass        //这里指的是继承了类MyClass

    {

        public string Hello()

        {

            return "Hello, MySubClass!";

        }

    }

}

posted on 2006-04-12 16:36  sopper  阅读(425)  评论(1编辑  收藏  举报