C#中虚拟方法和抽象方法的区别,一起研究研究?

前言:在前面的文章中,我们已经对虚方法抽象方法有了了解,那么本博文将阐述它们之间的区别,一起来看看吧。

一.在定义上:

虚方法用关键字virtual来进行声明,不允许再有static,abstract,或override修饰符

访问修饰符 virtual 函数返回类型 函数名(参数表) {函数体}

抽象方法用关键字abstract来进行声明,只在抽象类中定义,方法修饰符不能使用private, virtual, static.

 访问修饰符 abstract class abstract_name{}

二.在实现上:

虚方法抽象方法
虚拟可以直接实例化抽象不可以实例化
虚方法可以在任何非密封类中声明抽象方法只能在抽象类中声明
虚方法可以在派生类中重写也可以不重写抽象方法必须在派生类进行重写
虚方法有实现部分抽象方法没有实现部分
虚方法不能是私有的抽象方法是私有的、受保护的

三.在作用上:

在面向对象方法中,抽象类主要用来进行类型隐藏。构造出一个固定的一组行为的抽象描述;
当在基类中进行虚方法的定义以后,在派生类中可以对其方法进行调用,而且可以通过重写来改变其中实现的功能来实现自己的一些功能;

四.使用场景:

当所有子类都要实现某一功能时,使用虚拟,将这些功能包装在基类中,在派生类中用关键字base引用;

当功能不相关时,使用抽象类;


若有忽略不足之处希望大家及时提出!😃😦😦😦

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

木偶☜

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值