Call subclass constructor from abstract class in Java

Posted by Joel on Stack Overflow See other posts from Stack Overflow or by Joel
Published on 2009-05-21T07:58:37Z Indexed on 2012/10/20 5:03 UTC
Read the original article Hit count: 100

Filed under:
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 {

}

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.

The problem is, on the assignment of the peer property in the parent class. I can't construct a new Child class by calling new Child1() 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 new self()?

© Stack Overflow or respective owner

Related posts about java