Preventing instantiation is an implementation issue, so this is a good reason if you are thinking of Java, C #, etc.
However, at the modeling level, you want to make an abstraction of the class if there are several subclasses, and it makes no sense that the object has a supertype, but not one of the subtypes.
, , . , , , .. .
EDIT: !