Call subclass constructor from abstract class in Java
<pre><code>public abstract class Parent {

    private Parent peer;

    public Parent() {
        peer = new ??????("to call overloaded constructor");
    }

    public Parent(String someString) {
    }

}

public class Child1 extends parent {

}

public class Child2 extends parent {

}
</code></pre>

<p>When I construct an instance of Child1, I want a "peer" to automatically be constructed which is also of type Child1, and be stored in the peer property. Likewise for Child2, with a peer of type Child2.</p>

<p>The problem is, on the assignment of the peer property in the parent class. I can't construct a new Child class by calling <code>new Child1()</code> because then it wouldn't work for Child2. How can I do this? Is there a keyword that I can use that would refer to the child class? Something like <code>new self()</code>?</p>
