virtual作用?
virtual关键字用于修改方法、属性、索引器或事件声明,并使它们可以在派生类中被重写(使用override关键字对虚方法重写)。 如下是虚方法声明和重写虚方法的示例:
声明虚方法
public class Animal
{
public virtual void Speak()
{
Console.WriteLine("动物叫声");
}
}
public class Dog : Animal
{
public override void Speak()
{
Console.WriteLine("汪汪");
}
}
public class Cat : Animal
{
public override void Speak()
{
Console.WriteLine("喵喵");
}
}
示例说明:
-
Animal
类中声明了一个虚方法Speak()
,该方法用于定义动物的叫声。 -
Dog
类和Cat
类继承自Animal
类,并分别重写了Speak()
方法,以实现不同的叫声。
总结:
-
virtual
关键字用于声明虚方法,允许在派生类中重写基类中的方法,从而实现多态性。 -
多态性是指同一个方法可以根据对象的实际类型执行不同的操作。
声明虚属性
此外,virtual
关键字还可以用于声明虚属性。虚属性允许在派生类中重写基类中的属性,从而实现属性的多态性。
示例代码:
public class Animal
{
public virtual string Name { get; set; }
}
public class Dog : Animal
{
public override string Name
{
get { return "狗"; }
set { }
}
}
public class Cat : Animal
{
public override string Name
{
get { return "猫"; }
set { }
}
}
示例说明:
Animal
类中声明了一个虚属性Name
,该属性用于获取或设置动物的名字。Dog
类和Cat
类继承自Animal
类,并分别重写了Name
属性,以实现不同的名字。
总之,virtual
关键字是C#中一个重要的关键字,用于实现多态性和属性的多态性。