.net隐藏方法

概念:如果基类和派生类中都声明了签名相同的方法,但该方法没有声明为virtual和override,派生类方法就会隐藏父类的方法

风险:会造成调用错误。

  class Son:Father
{
public new void SayHello()//显示的用New来声明函数以隐藏父类中的同名函数
{
base.SayHello();
}
}

隐藏的方法调用:

 static void Main(string[] args)
{
//实例化子类
Son son = new Son();
son.SayHello();

//实例化父类
Father father = new Father();
father.SayHello();

//实例化子类给父类
Father fa = new Son();
fa.SayHello();

Console.ReadLine();
}

输出:

HI!Father!

Hello!Son!

Hello!Son!

父类将无法在找到子类中的同名方法。

posted @ 2012-03-14 10:31  猪特曼  阅读(271)  评论(0编辑  收藏  举报