1
resposta

Instância de Classes

Olá pessoal,

class TestaContas {
    public static void main(String[] args) {
    **Conta c = new Conta();**
     **ContaCorrente cc = new ContaCorrente();**
    ContaPoupanca cp = new ContaPoupanca();
Conta c = new Conta();
    **Conta cc = new ContaCorrente();**
    Conta cp = new ContaPoupanca();
1) Qual a diferença entre os códigos acima, não entendi a explicação da aula.
2) Quando usar uma forma ou outra?
3) Qual  a forma mais utilizada?

Obrigado!!

1 resposta

1) A diferença é que o segundo código é mais genérico, pois como ContaCorrente e ContaPoupanca são filhas de Conta, você pode afirmar que elas são do tipo Conta.

2 e 3) Acho que posso responder essas duas perguntas juntas. Veja que ser mais genérico não te traz problemas, muito pelo contrário, traz mais flexibilidade. Você tem um objeto do tipo Conta sendo que pode recerber uma instância de ContaCorrente ou ContaPoupanca. Prefira optar pelo mais genérico.