You have a list of projectiles or Gameobjects?
if gameobjects you need to cast to pprojectiles
I shouldn't think so, the update method in the parent type is abstracted so surely the overridden method in the type should be called without the need to cast.