Det går tydligen med en rejäl dos fulhack att göra detsamma i en statisk metod, men det är troligen inte att rekommendera då det är rejält fult. Här kommer koden iaf
Exception e = new Exception();
StackTraceElement[] = e.getStackTraceElements();
String className = sTrace[0].getClassName();
return Class.forName(className).newInstance();
Exception skapas enbart för att komma åt StackTraceElements vilken innehåller klassnamnet i index 0. Däremot kan du fortfarande inte få metoden att returnera någonting annat än HuvudKlass.
Skulle rekommendera att istället implementera createObject() i varje subklass. Ta en titt på ett design-pattern som kallas "Factory Method".