虚方法和隐藏方法从本质上来说,他们的目的是一样的,都是为了让对象在保证具有基类的共性的同时能够发挥出自己的个性,但不同的是,他们俩的作用范围不一样。隐藏方法的作用范围局限于指向派生类的派生类的引用,而虚方法既可以作用于指向派生类的基类的引用,也可以作用于指向派生类的派生类的引用。当然了,隐藏方法只是将原来的方法隐藏,而虚方法则是直接重写基类的方法,这一点也是有所区别的。下面直接看例子:在我的基类pet中声明了方法xianshi()和虚方法speak()。
public class pet
{
public string name="wuhao";
#if true
public void xianshi()
{
Console.WriteLine("pet's name is:"+name);
}
#endif
virtual public void speak()
{
Console.WriteLine("pet is shouting!" );
}
}
public class dog : pet
{
public uint age;
new public string name = "xiaozhuang";
public dog(string Name)
{