The question is inspired by the topic. Why does java need a protected constructor
I wanted to use the class java.util.Calendar as a protected constructor. But first I looked at the source and, with surprise, I found out that this class is abstract. Always believed that you cannot create an instance of an abstract class. But you can get an object of class Calendar using
Calendar cal = Calendar.getInstance(); What then is the essence of the prohibition to create an instance of an abstract class? I just can't write in the code for new Calendar ()? And through some other methods can I safely get an instance of this class? That is, is it true that "if a class is abstract, then its default constructor is protected"?