Qual a diferença entre criar um atributo ArrayList na classe de Pagamentos e estender a classe para ArrayList?
Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!
Qual a diferença entre criar um atributo ArrayList na classe de Pagamentos e estender a classe para ArrayList?
Boa noite Bruna,
Resposta curta
Criando atributo, você está usando composição; estendendo a classe ArrayList você está usando herança.
Resposta mais detalhada
Criando atributo, você está usando composição; estendendo a classe ArrayList você está usando herança.
Ao fazer uso da herança, a sua classe terá todos os métodos da classe ArrayList. Caso você precise de todos e/ou queira alterar boa parte deles, é uma boa abordagem. Caso contrário, terá acesso sem necessidade a métodos que não usará.
Usando a composição, você não fica tão presa à classe mãe, como no exemplo anterior. Pode usar só os métodos que desejar. Eles podem ser os mesmos da ArrayList, ou podem ter uma implementação completamente diferente, conforme sua necessidade.
Mais links que discorrem sobre o assunto:
Ficou claro? Espero tê-la ajudado.
Abraço.