Fields are storage locations in a class - you cannot "override" them or make the virtual.
Properties, on the other hand can be made both virtual or abstract. Properties are simply syntactic sugar around get/set methods, which do the work of retrieving or setting the property value.