Realizar casting entre clases es siempre sencillo, el inconveniente es cuando se trata de un arrays. Por ejemplo... sabiendo que la clase Manager deriva de Employee , si tenemos un array de Manager , es fácil convertirlo en un array de Employee usando casting directo: Employee[] employees1 = (Employee[])managers; Pero si tenemos un array de Employee no es posible convertirlo en un array de Manager de la misma forma que tampoco podríamos hacer un casting directo entre objetos simples. No se me ocurre...