c#中void与override区别是什么
void 指方法没有返回值。
override是重写,这是对父类的一个定义好的方法的重写。
例如:
class NewBase//定义一个类
{
public new virtual void Show()//定义一个虚方法
{
Console.WriteLine("我来自子类");
}
}
class ANewBase : NewBase
{
public override void Show() //这就是对类方法的重写
{
Console.WriteLine("我来自子类的子类");
}
}
virtual 关键字用于修饰方法、属性、索引器或事件声明,并使它们可以在派生类中被重写。 例如,此方法可被任何继承它的类重写。
虚拟成员的实现可由派生类中的重写成员更改。 有关如何使用 virtual 关键字的更多信息,请参见使用 Override 和 New 关键字进行版本控制(C# 编程指南)和了解何时使用 Override 和 New 关键字(C# 编程指南)。
调用虚方法时,将为重写成员检查该对象的运行时类型。 将调用大部分派生类中的该重写成员,如果没有派生类重写该成员,则它可能是原始成员。
默认情况下,方法是非虚拟的。 不能重写非虚方法。
virtual 修饰符不能与 static、abstract, private 或 override 修饰符一起使用。 下面的示例演示一个虚拟属性:
