2
respostas

Aula 4 - Ex 2

Fiquei com uma dúvida na explicação do exercicio...

Tinha entendido que se eu declarar o atributo conta como a Classe Conta e dar um new ContaCorrente, não poderei utilizar os métodos da Classe ContaCorrente certo?

Então, porque seria util eu definir o atributo conta como classe Conta em vez de classe ContaCorrente?

2 respostas

Estudando mais um pouco entendi assim:

Se eu tiver o método abstrato na classe mãe garantindo que todos os filhos terão o método também aí estaria OK eu dar à um atributo o objeto conta.

Nesse caso estaria garantindo que todos os métodos no filho poderão ser chamados corretamente.

Olá Jaqueline,

Gostaria de complementar seu raciocínio com alguns outros pontos.

Isso torna a classe que possui o atributo do tipo Conta mais flexível, podendo trabalhar com qualquer classe especializada de Conta, que seria ContaCorrente ou ContaPoupança, podemos dizer que essa flexibilidade, para este caso, é chamada de Acoplamento Abstrato (pois a classe Conta é abstrata, por possuir um método abstrato).

Entra um outro princípio aí, o Polimorfismo, que tem relação ao método abstrato que você mencionou. Isso garante que as classes ContaPoupança e ContaCorrente herdem a assinatura desse método abstrato e os obriga a criar uma implementação específica para cada um deles.

Bem, pra não ficar muito longo vou parar por aqui rs, existem vários pontos que podem ser discutidos, acho esse um assunto bem legal.

Mas acredito que, no projeto de classes, essas decisões bem estudadas e explorando os conceitos da programação orientada a objetos, pode deixar seu projeto de classe um pouco mais coeso e com um menor acoplamento.

Espero ter ajudado em alguns aspectos!