虚方法
- 把一个基类函数声明为virtual,就可以在任何派生类中重写该函数
class MyBaseClass
{
public virtual string VirtualMethod()
{
return "Method is called in base class";
}
}
- 在派生类中重写另外一个函数时,要使用override关键字显示声明
class MyDerivedClass:MyBaseClass
{
public override string VirtualMethod()
{
return "Method is called in derivedclass.";
}
}
隐藏方法
- 如果签名相同的方法在基类和派生类中都进行了声明
- 但是该方法没有分别声明为virtual和override,派生类就会隐藏基类方法
- 要使用new关键字进行声明
基类
class MyBaseClass{
public int MyMethod(){
}
}
派生类(在派生类中把基类同名的方法隐藏掉了)
class MyDerivedClass :MyBaseClass{
public new void MyMethod() {
}
}