Buenas compañero,
Posiblemente, lo que esté haciendo es usar una interfaz, declarando el tipo del tipo de la interfaz, pero realizando la instancia con el nombre de la clase que implementa la interfaz...
Dicho de otra forma...
Tengo la clase MiClase que implementa la interfaz MiInterfaz... Y además, tengo MiClase2 que también implementa dicha interfaz...
Sabiendo ésto, yo puedo hacer lo siguiente en el código:
MiInterfaz oCoche = new MiClase();
O también puede ser, porque en vez de una interfaz, sea una clase "padre"... Esto lo hacemos con la herencia de clases...
https://msdn.microsoft.com/es-es/lib...or=-2147217396
En otros lenguajes, se pueden heredar de múltiples clases, pero en .Net sólo de una, pero, implementar varias interfaces...
Si necesitas cualquier otra cosa... Comenta y lo vamos viendo con la comunidad.
Un saludo compañero!!!