SóProvas


ID
486646
Banca
FCC
Órgão
TCE-AL
Ano
2008
Provas
Disciplina
Engenharia de Software
Assuntos

Os conceitos de generalização e especialização da orientação a objetos estão diretamente relacionados ao conceito de

Alternativas
Comentários
  • essa é muito facil, será que alguem errou?
  • Herança (Especialização)

    A herança é um relacionamento pelo qual uma classe, chamada de subclasse, herda todos os comportamentos e estados possíveis de outra classe, chamada de superclasse ou classe base. É permitido que a subclasse estenda os comportamentos e estados possíveis da superclasse (por isso este relacionamento também é chamado de extensão). Essa extensão ocorre adicionando novos membros a subclasse, como novos métodos e atributos. Herança é um relacionamento é um.
    É também possível que a subclasse altere os comportamentos e estados possíveis da superclasse. Neste caso, a subclasse sobrescreve membros da superclasse. Tipicamente métodos.
    Uma subclasse é mais específica que sua superclasse e representa um grupo mais especializado de objetos.
    Quando uma classe herda de mais de uma superclasse, ocorre uma herança múltipla (C++), porém, Java só permite herança única.



    A classe mais ao topo da hierarquia é a generalização, enquanto a última classe é a mais especializada.
  • a)      Agregação: Uma agregação é um relacionamento “parte-todo” ou “uma-parte-de” no qual as classes que representam os componentes de alguma coisa são associadas a uma classe que representa o agregado.
    b)      associação: Associação é o mecanismo pelo qual um objeto utiliza os recursos de outro. Pode tratar-se de uma associação simples "usa um" ou de um acoplamento "parte de".
    c)      encapsulamento: Ocorre quando os atributos são ocultados de estruturas externas e só podem ser acessados via os métodos das classes que tratam essas informações.
    d)      polimorfismo: significa que duas ou mais subclasses da mesma superclasse podem conter métodos que possuem a mesma assinatura, porém com comportamentos distintos.
    e)      herança: Generalização e Especialização são ferramentas para lidar com complexidade, elas são abstrações. Em OO elas são permitidas através de heranças.
  • Só complementando o comentário do colega Henrique: a definição de polimorfismo exposta foi de sobreposição (classes diferentes), mas também temos a sobrecarga, na qual ocorre na mesma classe só que com assinaturas de métodos diferentes (quantidade de parâmetros diferentes).

    Com relação à resposta da questão (herança), temos como restrições da generalização:
    • Incompleta: outros subtipos podem ser adicionados no futuro.
    • Completa: os subtipos estão fixos, não fazendo sentido adicionar novos.
    • Disjunta: só possuem uma única superclasse.
    • Sobreposta (overlapping): possuem mais de uma superclasse.
    Bons estudos.