Supongamos que tenemos una clase Empleado (con atributos nombre, apellidos, etc) y varias clases que heredan de Empleado (Administrativo, Gerente, etc).
En la clase Empleado existe un método que dado un código devuelve el objeto Empleado que lo tiene:
public Empleado GetEmpleado(int code)
La clase Administrativo se relaciona con la clase Expediente (un expediente está asignado a un administrativo), luego tendrá el siguiente aspecto:
public class Expediente
{
//Atributos
...
Administrativo admtvo
...
}
Mi problema surge en el constructor de Expediente
Empleado empleado = empleado.GetEmpleado(5);
Expediente exp = new Expediente(..., (Administrativo)empleado, ...)
Me da error de ejecución (no de compilación) a pesar del casting.
El problema está en que GetEmpleado devuelve un objeto Empleado y el constructor de Expediente necesita un Administrativo (no un Empleado, aunque Administrativo herede de Empleado).
¿Cómo puedo solucionarlo esto?
Espero vuestra respuestas.