抽象方法和虚方法都可以写在抽象类中,它们有什么区别呢? ,接下来就让我带你分析一下吧。
一、Virtual方法(虚方法)
virtual 关键字用于在基类中修饰方法,它有两种情况:
(1)在基类中定义virtual方法,但在派生类中没有重写该虚方法。那么在堆派生类实例调用中,该虚方法使用的是基类定义的方法。
(2)在基类中定义了virtual方法,然后再派生类中使用override重写该方法,那么在对派生类实例的调用中,该虚方法使用的是派生重写的方法。
二、Abstract方法(抽象方法)
abstract关键字只能用在抽象类中修饰方法,并且没有具体的实现。抽象方法的实现必须在派生类中使用override关键字来实现。请务必将抽象方法放在抽象类中。派生类必须全部实现父类的方法。
总结一下抽象方法和虚方法:抽象方法只能声明再抽象类中并且没有方法体,而且子类必须用Override重写。
虚方法使用有两种:一种是可以重写在子类,第二种是可以不重写,如果不重写则直接调用父类。重写调用子类的。
三、Interface:接口我已经在抽象类和接口的区别里面说了。
给大家留个问题:设计者为什么会设计有抽象方法和虚方法,只有一个不可以吗?