Olá Isabela! Tudo bem?
Realmente, utilizando as duas formas você vai obter o mesmo resultado!
Quando utilizamos uma variável mais genérica (Conta
) para armazenar um objeto mais específico(ContaCorrente
), o objeto segue sendo do tipo específico, mas pode ser usado em algum método que aceita apenas tipos mais genéricos.
Existem situações em que isso pode ser útil para nós, como por exemplo, se precisamos utilizar um método de outra classe que recebe uma Conta como parâmetro. Utilizar um tipo mais genérico no parâmetro desse método nos faria poder utilizar tanto uma ContaPoupanca
quanto uma ContaCorrente
.
Nesse caso realmente não nos trouxe muita diferença o uso do tipo específico ContaCorrente
ou do tipo mais genérico Conta
... Mas em outros casos isso poderia trazer sim diferenças no uso dessas classes.
Mas de forma geral, utilizamos a forma ContaCorrente conta = new ContaCorrente
, com os tipos específicos sendo usados com variáveis de seu tipo, até que seja realmente necessário utilizar dessa forma: Conta conta = new ContaCorrente
.
A explicação te ajudou a entender melhor?
Se ficar interessada em ver um pouco mais a respeito, te recomendo um outro tópico que tivemos com uma colega aqui no fórum a respeito desses tipos genéricos e específicos: Link do post sobre tipos específicos e genéricos
Se eu puder te ajudar em mais alguma coisa, é só falar! 😀