¿Qué tal? Tengo una duda de novato, acabo de meterme en Java y de momento solo estoy haciendo teoría 
 
Tengo una clase A, y una clase B heredada de A. 
Entonces, para instanciar B, he visto dos formas y no veo la diferencia o cuál es la correcta. 
A variable = new B(); 
y 
B variable = new B(); 
Y ya puestos, por qué hay que declarar el tipo cuando se instancia una clase, ¿no es redundante?  
Gracias.