在子类中,可以隐藏和覆盖基类的方法。隐藏和覆盖有所不同。隐藏是把基类方法遮蔽,覆盖是在子类中把基类方法替换掉。隐藏用new的方法,覆盖用override的方法。两者的区别是:用new方法只是隐藏了基类方法,基类方法还存在,通过一定方式还可以调用。用override是替换掉了基类方法。下面以例子来说明。python中的重写就很简单了,就是在子类中重写该方法就可以了。
public class Creature
{
public Creature()
{
Console.WriteLine("这是Creature类");
}
public Creature(string str)
{
Console.WriteLine($"先执行带参数的Creature类,参数是{str}");
}
public void DoSomething() => Console.WriteLine("这是Creature类的DoSomething方法");
public virtual void VirtualDosomething() => Console.WriteLine("这是Creature类的VirtualDosomething方法");
public virtual void VirtualDosomething2() => Console.WriteLine("这是Creature类的VirtualDosomething2方法");
public virtual void VirtualDosomething3() => Console.WriteLine("这是Creature类的VirtualDosomething3方法");
}
public class Animal : Creature
{
publ