Busca por el tema
reflection. Básicamente, puedes crear e inspeccionar instancias de clases en tiempo de ejecución a partir de nombres.
Para darte un toque inicial, se suele empezar con un Class.forName(cadenaTipo) con la que cargas una clase en función de una cadena que es el nombre de la clase. A partir de ahí, con el objeto que te devuelve el método puedes crear instancias de diferentes formas, llamarle a métodos etc.
El tema de Reflection del Java Tutorial:
http://java.sun.com/docs/books/tutorial/reflect/
S!