virtual方法(虚方法)与abstract(抽象方法)的区别
virtual 关键字用于在基类中修饰方法。virtual的使用会有两种情况:
情况1:在基类中定义了virtual方法,但在派生类中没有重写该虚方法。那么在对派生类实例的调用中,该虚方法使用的是基类定义的方法。
情况2:在基类中定义了virtual方法,然后在派生类中使用override重写该方法。那么在对派生类实例的调用中,该虚方法使用的是派生重写的方法。
二、Abstract方法(抽象方法)
abstract关键字只能用在抽象类中修饰方法,并且没有具体的实现,只需要一个方法的签名+”;“加”{}“,抽象方法的实现必须在派生类中使用override关键字来实现。
三、virtual:用于父类中声明该方法可被重写(其父类也可以是抽象类)。
存在抽象方法的类一定是抽象类,但抽象类中可以无抽象方法。继承抽象类的派生类一定要实现基类的抽象方法。这一点是和虚方法不同的。