Virtual 和 Abstract的区别

本文详细阐述了C#中Virtual和Abstract关键字的区别与用法。Virtual关键字允许方法在派生类中被重写,而Abstract则强制派生类必须提供具体实现。此外,Abstract方法所在的类也必须声明为Abstract,不能直接实例化。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


二者都是用来修饰基类的,通过覆盖基类的定义,让派生类重新定义。

相同点:如果用于修饰方法,必须声明为Public(公有的)或者Protected(受保护的),
因为派生类是不能访问Private(私有)方法的。

不同点:

Virtual:虚拟的,
1基类中Virtual修饰的方法必须有实现,即便是只有一个大括号。
2.派生类中Virtual可以被重写,也可以不被重写。在派生类中,要实现该修饰的方法的时候,
  必须使用关键字Override(告诉编译器,需要重写虚方法),必须有实现。
3.C#中如果要在派生类中重写方法,那么必须在基类中的方法前使用关键字Virtual修饰。
  这样而已避免程序员在父类中不小心重写了方法。

Abstract:抽象的,
1.基类中Abstract修饰的方法,一定不能实现。
2.派生类整Abstract必须重写。
3.如果成员有Abstract修饰,那么类必须有Abstract修饰,因为只有抽象类才可以有抽象方法。
4.无法创建Abstract类的实例,只能被继承,无法实例化。

转载于:https://www.cnblogs.com/acoll/p/4077858.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值