C sharp - Clases y herencia (Consulta)

 
Vista:

Clases y herencia (Consulta)

Publicado por Federico (3 intervenciones) el 03/08/2012 00:35:20
Hola tengo una duda con respecto a un código:

- Se tiene la clase Auto con los campos nombre y modelo, además:
- Se tiene la clase Taxi, que hereda de Auto y demás tiene un nuevo campo Pasajeros.

Lo que no entiendo es por qué se puede hacer lo siguiente:

1
2
3
4
5
6
7
8
9
static void Main(string[] args)
        {
            Auto[] vector = new Auto[4];
            vector[0] = new Auto("Fiat", 2000);
            vector[1] = new Taxi("Renault", "1999", 2);
            foreach(Auto a in vector)
            {
                a.imprimir();
            }


Si se declara el vector de tipo Auto, ¿por qué se permite instanciar objetos de una clase que hereda de Auto?

Desde ya muchas gracias, agradezco cualquier ayuda que me puedan dar.
Saludos!
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Ella

Clases y herencia (Consulta)

Publicado por Ella (7 intervenciones) el 03/08/2012 03:07:32
En inglés la operación se llama "implict upcast", que se permite por la compatibilidad de tipos en una jerarguía de clases: el compilador posee las informaciónes de herencia y es capaz de aplicar el upcast.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Clases y herencia (Consulta)

Publicado por Federico (3 intervenciones) el 03/08/2012 04:20:07
Muchas gracias por contestar tan rapido, ahora me cierran muchas cosas, como por ejemplo antes me parecía redundate cada vez que tenía que instanciar un objeto tener que poner el tipo 2 veces en la declaración, no se si me comprendes. De nuevo muchas gracias por tu ayuda.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar