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 si entonces está ahícualquier escenario en java donde necesitamosconvertir explícitamente un objeto de subclase en un objeto de súper clase?

Respuestas a la pregunta(6)

Su respuesta a la pregunta