Em programação orientada a objetos, ocorrem relacionamentos entre as classes mães e suas classes herdeiras e são denominados:
- A)Dependências.
Errada, porque dependência indica uma classe usando outra de forma pontual, e não um vínculo de herança entre mãe e filha.
- B)Associações.
Errada, porque associação é uma ligação entre classes, mas não representa especialização nem herança.
- C)Composições.
Errada, porque composição é relação todo-parte forte, não o relacionamento entre superclasse e subclasse.
- D)Agregações.
Errada, porque agregação também é relação todo-parte, porém mais fraca que composição, sem relação de herança.
- E)Generalizações.
Certa, porque generalização é o nome dado ao relacionamento entre a classe mais geral e suas classes herdeiras na orientação a objetos.
Gabarito: E
Em Programação Orientada a Objetos, quando uma classe "filha" herda características e comportamentos de uma classe "mãe", estamos falando de um relacionamento de generalização. É aquele clássico "é um tipo de": por exemplo, Cachorro é um Animal, Aluno é uma Pessoa. A classe mais específica reaproveita e especializa a mais geral, sem precisar reinventar a roda. Na UML, esse vínculo entre a superclasse e a subclasse é representado justamente como generalização. Por isso, o gabarito é a letra E. Aqui a ideia central não é apenas ter objetos ligados entre si, mas sim uma relação de herança, com hierarquia entre classes. As outras alternativas tratam de outros tipos de relacionamento bem conhecidos. Associação é uma ligação genérica entre classes, agregação e composição são formas de relacionamento todo-parte, e dependência é uma relação mais fraca, normalmente temporária. Nenhuma delas descreve o vínculo pai-filho da herança. Então guarde assim: se a questão falar em classes mães e classes herdeiras, pense em generalização. É a nomenclatura clássica da modelagem orientada a objetos e da UML, e aparece muito em prova com esse jeitinho de trocar o nome do conceito para testar se você reconhece a herança.