c#中的重写方法与隐藏方

1、父类中有方法a,添加virtua修饰符可声明为虚方法,在子类中可以用override声明后重写方法a。

2、父类中有方法a,在子类中可以有new修饰符声明后隐藏父类方法。

子类重写方法后,对于子类的任何实例,父类的原方法a都已经不存在。

子类隐藏父类方法后,父类的原方法仍然存在,当子类的实例的类型转为父类时,调用的方法a即为原来的方法。

 //重写方法
class A
{
public virtual void a()
{
  Console.WriteLine('CLASS is A');
}
} class B:A
{
public override void a()
{
   Console.WriteLine('CLASS is B');
}
} class client
{
static void main()
{
B b=new B();
   A a=b;    a.a();
  b.a();
}
} /*输出
CLASS IS B
CLASS IS B
*/ //隐藏方法
class A
{
public void a()
{
  Console.WriteLine('CLASS is A');
}
} class B:A
{
public new void a()
{
   Console.WriteLine('CLASS is B');
}
} class client
{
static void main()
{
B b=new B();
   A a=b;    a.a();
  b.a();
}
} /*输出
CLASS IS A
CLASS IS B
*/
上一篇:阅读笔记


下一篇:nginx 常用的 URL 重写方法