【C#】-抽象方法、虚方法、接口

抽象方法和虚方法都可以写在抽象类中,它们有什么区别呢? ,接下来就让我带你分析一下吧。

 

一、Virtual方法(虚方法)

virtual 关键字用于在基类中修饰方法,它有两种情况:

(1)在基类中定义virtual方法,但在派生类中没有重写该虚方法。那么在堆派生类实例调用中,该虚方法使用的是基类定义的方法。

(2)在基类中定义了virtual方法,然后再派生类中使用override重写该方法,那么在对派生类实例的调用中,该虚方法使用的是派生重写的方法。

二、Abstract方法(抽象方法)

abstract关键字只能用在抽象类中修饰方法,并且没有具体的实现。抽象方法的实现必须在派生类中使用override关键字来实现。请务必将抽象方法放在抽象类中。派生类必须全部实现父类的方法。

总结一下抽象方法和虚方法:抽象方法只能声明再抽象类中并且没有方法体,而且子类必须用Override重写。

虚方法使用有两种:一种是可以重写在子类,第二种是可以不重写,如果不重写则直接调用父类。重写调用子类的。

三、Interface:接口我已经在抽象类和接口的区别里面说了。

抽象类和接口的区别

给大家留个问题:设计者为什么会设计有抽象方法和虚方法,只有一个不可以吗?

 

 

评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

TGB-Earnest

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

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

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

打赏作者

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

抵扣说明:

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

余额充值