Bom dia Arthur, no caso você gostaria de saber a vantagem de referenciar um objeto com um tipo de uma superclasse dele correto? Então quando fazemos isso estamos usando o polimorfismo. Por exemplo, temos uma classe ContaCorrente que herda de Conta, assim podemos criar um objeto ContaCorrente de duas maneiras:
Conta c = new ContaCorrente();
ContaCorrente cc = new ContaCorrente();
Isso ocorre porque ContaCorrente é uma ContaCorrente e também é uma Conta, e sobre sua maior vantagem é que, imagine um método que irá receber uma ContaCorrente e imprimir o valor dela:
public void imprimir(ContaCorrente cc) {}
Agora temos outro tipo de Conta que é a ContaPoupanca e também precisamos imprimir seu valor:
public void imprimir(ContaPoupanca cp) {}
temos dois métodos para fazer a mesma coisa, logo como Ambos são Conta, podemos fazer nosso método receber Conta e dependendo o tipo de conta que passarmos o compilador sabe se deve chamar a ContaCorrente ou a ContaPoupanca:
public void imprimir(Conta conta) {}
Isso é o polimorfismo!
Espero ter ajudado.
Abraços.