It does not make sense to create an instance of the subclass inside the parent constructor and replace the actual parent instance with the created child instance.
Despite the nasty StackOverflowError pointed out in the comments and in another answer, there is no case for this. In general, it is absurd (from a logical point of view) to create a child when creating a parent.
Consider the following considerations:
A specific car is assembled in a factory. The assembly process of a particular car consists of several stages.
Some of these steps occur only during the assembly of a particular vehicle, while others occur both during the assembly of a specific vehicle and in the assembly of other vehicles, such as a particular van.
Now, suppose that one of these general steps involved in assembling many vehicles (including both a specific vehicle and a specific van) indicates that we must assemble a new specific van and allow it to be assembled by a common vehicle.
Now the particular car we were assembling would become this new concrete van. But it is impossible for the car to be van => ABSURD .
source share