We can overload constructor to provide distinct values to each object present in the class. we cant override constructor bcz constructor is not involved in inheritance but it can be possible to call parent constructor by using super keywords.
Yes your observation is right you can't override a constructor, we can only overload. The reason is that A sub class is a different class and must have its own constructor, so constructors can't be overridden.
By making private constructor, we can avoid instantiating class from anywhere outside and by making class final, no other class can extend it. Why is it necessary for Util class to have private constructor and final class ?
Why abstract class can't be instantiated i.e. Object of abstract class can't be created??