Some people really hate constructors
The problem: constructors only create instance of a specific class, never a subclass.
Default factory methods?
Guessing it could look something like this:
Foo f1 = Foo.new(1, 2); Foo f2 = Foo.new(com.subclass.of.Foo.class, 1, 2);