Bueno, te dejo unas indicaciones. Lo que tienes que hacer es crear un array del supertipo de la herencia, es decir Persona, y en el añades la persona y el empleado creándolos y agregándolos al array.
Código:
Persona[] array = new Persona[2];
Persona p = new Persona ();
Empleado e = new Empleado ();
array[0] = p;
array[1] = (Persona)e; // aquí estariamos perdiendo la funcionalidad de la clase Empleado.
A la hora de recuperarlo tendrás que hacer un casting para poder volver a acceder a los métodos de empleado:
Código:
Empleado e2 = (Empleado)array[1];
e2.mostrarDatos ();
Espero que te ayude un poco la idea.
Para hacerlo más correcto, yo usaría el operador instanceof, y de paso te pongo lo que creo que pides:
Código:
for (int x = 0; x < array.length(); x++){
if (array[x] instanceof Empleado){
Empleado e = (Empleado)array[x];
e.mostrarDatos ();
} else {
if (array[x] instanceof Persona) {
Persona p = array[x];
p.mostrarDatos ();
}
}
}
Espero que la sintaxis sea correcta, ya que lo he heho a pelo, sin probar el código.
Un saludo.