Having said abstract key word is used only for "to avoid creating instance of a class". But,
below explanation says,
that should be achieved using private constructor, not through abstract. A class type should be declared abstract only if the intent is that subclasses can be created to complete the implementation. If the intent is simply to prevent instantiation of a class, the proper way to express this is to declare a constructor (�8.8.10) of no arguments, make it private, never invoke it, and declare no other constructors. A class of this form usually contains class methods and variables. The class Math is an example of a class that cannot be instantiated; its declaration looks like this:
This is just FYI!