关于abstract和virtual用法区别

  关于abstract和virtual用法区别 作者:-

abstract用于抽象类,一般是比较底层的基类  
  例如定义一个人事管理系统:先抽象出一个类“人”,然后“人”又可以派生出“普通员工”、“管理者”、“老板”,在现实中能够存在的只有“普通员工”、“管理者”、“老板”,而“人”是个抽象昂的定义,所以可以定义其为abstract抽象类!  
   
  virtual方便派生类的重写  
  例如,你定义一个图形类,它又派生了圆形和方形两个类,作为图形肯定是要能有绘图的Draw方法的,这时就可以把图形类中的Draw方法定义为virtual,然后在圆形类中重写Draw方法是画圆、在方形类中重写Draw方法为画方形。

abstract定义的类方法必须在继承的类中进行实现,而且没有实际的代码,类似接口
virtual定义的方法中可以有实际的代码,但是可以在父类的子类中定义override类型的同名方法覆盖父类的方法

你可能感兴趣的:(关于abstract和virtual用法区别)