Escribe orden con métodos sobrecargados en Java

Dados dos métodos en la misma clase en Java:

public void doSomething( Person person );
public void doSomething( Employee employee );

dónde

Employee extends Person

Si llamo:

doSomething( employee )

encontré esodoSomething( Person ) se invoca.

Habría esperado que se invocara la sobrecarga con el contrato más cercano, no con el más abstracto (que es lo que estoy encontrando)

¿Podría alguien explicar por qué?

Respuestas a la pregunta(4)

Su respuesta a la pregunta