Colección de citas famosas - Slogan de motivación - ¿Por qué C# requiere una conversión de tipo forzada cuando una referencia de clase principal apunta a una instancia de una subclase, ya que la subclase ya tiene elementos de la clase principal y la clase principal solo puede hacerlo?

¿Por qué C# requiere una conversión de tipo forzada cuando una referencia de clase principal apunta a una instancia de una subclase, ya que la subclase ya tiene elementos de la clase principal y la clase principal solo puede hacerlo?

"¿Por qué la referencia de la clase principal de C# apunta a una instancia de una subclase que requiere conversión de tipo de conversión?" La referencia de la clase principal de C# que apunta a una instancia de una subclase no requiere conversión de tipo de conversión.

Cuando la clase principal hace referencia a una instancia de la subclase, la conversión de tipos solo es necesaria si necesita utilizar métodos exclusivos de la subclase.

Ejemplo: espacio de nombres?answer160429

{

clase?Animal

{

público?void?Eat ()?{?}

}

//Subclase, hereda la clase principal Animal

clase?Bird?:?Animal

{

público?void?Fly()?{?}

}

clase?Programa

{

estático?void?Main(string[]?args)

{

Animal?animal1;

Pájaro?pájaro1?=?nuevo?Pájaro ();

//No es necesario convertir el objeto al que hace referencia la clase principal que apunta a la subclase

animal1?=?bird1;

/ /Pero en este momento animal1 no puede usar el método de Bird, solo puede usar el método de Animal

animal1.Eat();

//? Si quieres usar el método de Bird, debes realizar conversión de tipo;

((Bird)animal1).Fly();?

}

}

}

Sí. Comprenda el código anterior de esta manera:

La clase principal se refiere a la instancia de la subclase gt. ¿Es un pájaro un animal? Por supuesto, los pájaros son animales, por lo que no hay necesidad de conversión de tipo;

(Ahora el programa coloca un pájaro en un cuadro negro para animales)

Ahora alguien te pregunta qué es En esta caja negra ¿Se comerá la comida? ?

Esta caja negra solo puede contener animales, y los animales comerán, por lo que no es necesario abrir la caja negra para ver qué hay dentro, y puedes responder que puede comer.

Ahora alguien te vuelve a preguntar, ¿puede volar el animal de esta caja negra?

Entonces el dueño de la caja negra no puede responder la pregunta directamente, porque la caja es negra y solo tiene el logo de un animal. No sabe qué animal es. El dueño debe abrir la caja negra. para ver si es un pájaro. Si tan sólo un pájaro puede responder que puede volar. Esto equivale a una conversión forzada.

-------

Lo anterior es mi entendimiento personal.