c#中virtual、override、new的区别

 我来答
华源网络
2022-07-01 · TA获得超过5578个赞
知道小有建树答主
回答量:2486
采纳率:100%
帮助的人:144万
展开全部
Virtual 

  用于父类中,声明某方法可以重写,该方法不能是static; 

override(覆盖继承) 

  用于子类中,重写父类中用virtual/override/abstract关键字声明的方法; 

new(隐藏继承) 

  用于子类中,可修饰父类中有或无virtual声明的方法; 

  如果在父类中有与父类同名同参的方法时,C#会隐式在子类前添加一个new关键字。 

【区别】override与new 

  当将一个子类实例赋值给父类实例,在子类实例与父类实例中分别调用该方法时:使用override修饰的都将调用子类方法,而使用new修饰的会分别调用子类方法和父类方法。 

  New和Override这两个关键字是互斥的。不可以同时使用。  

【区别】virtual与abstract 

  virtual:用于父类中声明该方法可被重写。 

  abstract:只能用在抽象类中声明抽象方法,本身不能实现任何功能(因此必须在子类中override),不能实例化。 

  两者除了在子类中同样可以用override重写这个相同点之外,没有其他关系。 
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
威孚半导体技术
2024-08-19 广告
威孚(苏州)半导体技术有限公司是一家专注生产、研发、销售晶圆传输设备整机模块(EFEM/SORTER)及核心零部件的高科技半导体公司。公司核心团队均拥有多年半导体行业从业经验,其中技术团队成员博士、硕士学历占比80%以上,依托丰富的软件底层... 点击进入详情页
本回答由威孚半导体技术提供
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式