Conversión explícita de tipo de objeto de subclase a superclase en java
Considere el siguiente código:
public class Test{
public static void main(String str[]){
B b = new B();
A a1 = (A)b;//Explicit type conversion
A a2 = b;
}
}
class A{}
class B extends A{}
En el código anterior están las dos líneas:
A a1 = (A)b;//Explicit type conversion
A a2 = b;
¿Equivalente? Sino entonces que es eldiferencia entre los dos y sisí entonces está ahícualquier escenario en java donde necesitamosconvertir explícitamente un objeto de subclase en un objeto de súper clase?