C#中得虚拟方法

来源:互联网 发布:魔兽世界成就数据库 编辑:程序博客网 时间:2024/04/29 16:03

2.3 虚拟方法
使用virtul定义该方法为虚拟方法。

2.3.1 方法的重定义
使用override关键字,将一个虚拟的方法重定义。
这里注意。方法的隐式隐藏,使用new显示隐藏。
隐藏只是子类里面的将父类隐藏,但是,不影响父类的方法。
class A
{
      public method(){}
}

class B : A
{
      public method(){}
}
A aClass = new A();
aClass.method();//调用A中的method()
A aClass = new B();
aClass.method();//调用A中的method()
B bClass = new B();
bClass.method();//调用B中的method()
B bClass = new A();//编译无法通过
//////////////////////////////////////////////////////////
class A
{
      public virtual method(){}
}

class B : A
{
      public override method(){}
}
A aClass = new A();
aClass.method();//调用A中的method()
A aClass = new B();
aClass.method();//调用B中的method()
B bClass = new B();
bClass.method();//调用B中的method()
B bClass = new A();//编译无法通过

原创粉丝点击