¿Qué pasa si le asigno objeto a otro de diferente clase?

Ishan Trivedi:

Aquí está mi código:

class A
{
    int x=2,y=3;
}
class B extends A
{
    //Blank 
}
public class Test
{
    public static void main(String args[])
    {
        A a=new A();
        B b;
        b=a;
        System.out.println(b.x);
        System.out.println(b.y);
    }
}

Cuando estoy tratando de ejecutar este código, "tipos incompatibles: A no se pueden convertir a B" se muestra un error.

Y también cuando estoy tratando de tipo fundido "a" en "B", ClassCastException se produjo.

¿Hay alguna manera de asignar objeto a otro objeto de diferentes clases en java?

Juegos Mamani:

Técnicamente hablando, una variable de "clase base" se puede asignar "subclase", pero no a la inversa. Es decir, se puede tener "Un nuevo B A = ()", pero no "B b = new A ()".

Hay también una razón intuitiva. La clase base suele ser algo básico, diga "Persona", mientras que la subclase es más específico y promete proporcionar más propiedades / capacidades por ejemplo, "Maestro" (= persona más capacidades adicionales para enseñar). No se puede obligar a una persona ordinaria para llamar mágicamente un maestro, sólo se fallará el momento en que intenta activar ninguna de las capacidades de enseñanza ...

Podríamos comenzar una discusión filosófica sobre ocasiones en las que la cosa específica tiene menos capacidades que la base (por ejemplo, "IncompetentPerson extiende Persona") pero la herencia Java no es generalmente el objetivo de cubrir eso.

Supongo que te gusta

Origin http://43.154.161.224:23101/article/api/json?id=109517&siteId=1
Recomendado
Clasificación