2_virtual关键字的作用
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#中一个重要的关键字,用于实现多态性和属性的多态性。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现