SóProvas


ID
119233
Banca
FCC
Órgão
TRF - 4ª REGIÃO
Ano
2010
Provas
Disciplina
Engenharia de Software
Assuntos

Sobre herança na orientação a objetos, é correto afirmar:

Alternativas
Comentários
  • A) INCORRETA - A assertiva correta diria que o conjunto de objetos representado por uma subclasse é, em geral, MENOR que o conjunto de objetos representado por sua superclasse.

    B) INCORRETA - Uma subclasse pode ter métodos e tipos de dados próprios

    C) CORRETA.

    D) INCORRETA - Existem outros tipos de relacionamentos ente classes, por exemplo, associação, agregação, compositção etc.

    E) INCORRETA - Não necessariamente, pois, podem haver dados próprios para cada tipo de classe.
  • Para mim o gabarito está errado, pois:
    a) ERRADA. Não podemos afirmar que em geral acontece o que o item fala.
    b)  ERRADA. Podemos ter um objeto na subclasse que não é da subclasse e sim da superclasse por herança.
    c) ERRADA TAMBÉM. A função primordial da OO é herdar os atributos e métodos das superclasses. Se uma classe filha não necessita de atributos ou métodos da classe pai a modelagem não está feita  da melhor maneira, ou seja, ou a classe filha não deveria ser herdada da pai ou os métodos não necessários (como o item fala) não deveria estar implementados na superclasses, pois não são comuns todas as especializações. Agora, dizer que herdar métodos "desnecessários" é um problema da herança e não da modelagem foi demais hein FCC.
    d) ERRADA. Há outros tipos de relacionamentos como associações, implementações, agregações, etc.
    e) CERTA (ou menos errada). Certa ou menos errada, porque usou o verbo "podem", alguns objetos publics ou protecteds podem ser tratados como das suas subclasses.
  • Acho que a menos errada é a Letra C, pois como o colega falou, é um problema de projeto e não de herança.
    A letra A está errada, pois uma classe representa um conjunto de objetos e é composta de um conjunto de métodos e atributos que, em geral, maior que o conjunto de métodos e atributos da Superclasse.
    A letra B está incorreta, pois a afirmação correta seria: "Cada objeto de subclasse é um objeto de sua superclasse."
    A letra D está incorreta, pois relacionamentos entre classes não são apenas de herança, como o outro colega afirmou acima.
    A letra E está incorreta, pois a definição está invertida. O cerro seria: Os objetos da Subclasse podem ser tratados como objetos da Superclasse.
  • A herança é um tipo de relacionamento "é um" logo, considerando o exemplo clássico de hierarquia de Pessoa e PJurídica e PFísica, temos que:
    1) Cada PJurídica é uma Pessoa;
    2) Cada PFísica é uma Pessoa;
    3) Se ocorrer um objeto de cada subclasse teremos 2 objetos Pessoa.
  • c-

    É necessario uso de metricas para verificar o uso de orientação de objetos para rever uso de herança. Para metricas de projeto, DIT (depth of inheritance tree) pode indicar se o uso de herança esta adequado. DIT > 2 indica pouca exploração de orientação a objetos, enquanto que DIT > 5 demonstra projeto muito complexo.

  • Questão muito doida inclusive a assertiva correta (c). Não vejo o problema como de responsabilidade da herança propriamente dito e sim da implementação sendo que as linguagens disponiblizam os modificadores de acesso justamente para isso.