A non-virtual function says, you have to do this and you must do it this way. A virtual function says you have to do this, but you don't have to do it this way. That's their fundamental difference.
Scott MeyersLightstone's Convolution Principle: The concurrent development of multiple features operating on intersecting componentry will take longer to complete than the sum of the schedule estimations for each.
Scott Meyers