Abstração em Programação Orientada a Objetos – POO (ou Objec...

Próximas questões
Com base no mesmo assunto
Q3881279 Programação
Abstração em Programação Orientada a Objetos – POO (ou ObjectOriented Programming, OOP) corresponde a uma visão ou representação de uma entidade que inclui apenas os atributos mais significativos.
Com relação à JAVA e a OOP, assinale (V) para a afirmativa verdadeira e (F) para a falsa.

( ) O Java emprega uma adesão consistente aos princípios orientados a objetos, tendo a abstração como supressão intencional, ou ocultação, de alguns detalhes de um processo ou artefato, focando nas características e comportamentos essenciais de um objeto do mundo real.
( ) Java não permite classes sem pais, pois a herança é mandatória e centralizada, e usa dynamic binding (Ligação Dinâmica ou Tardia) como comportamento padrão para métodos de instância em Java para vincular chamadas de método às definições de métodos, que corresponde ao Polimorfismo (de inclusão ou sobreposição).
( ) Java usa interfaces para fornecer uma forma de suporte à herança múltipla, que não possui todas as desvantagens da herança múltipla real.

As afirmativas são, respectivamente,
Alternativas

Gabarito comentado

Confira o gabarito comentado por um dos nossos professores

Gabarito: B

Fundamento decisivo: O ponto decisivo era aceitar as três assertivas como verdadeiras, o que conduz à sequência V – V – V e, portanto, à alternativa B.

Tema central: POO em Java
Análise das alternativas
A
Errada
Está errada porque exige que a 1ª assertiva seja falsa, mas a definição de abstração apresentada é correta.
B
Certa
A alternativa B está correta porque a base de decisão considera verdadeiras as três afirmações: a 1ª descreve abstração de forma adequada; a 2ª é compatível com a herança implícita em Object e com a ligação dinâmica em métodos de instância; a 3ª está correta ao indicar que interfaces dão suporte à herança múltipla de tipo em Java.
C
Errada
Está errada porque torna falsa a 3ª assertiva, embora interfaces sejam aceitas como suporte à herança múltipla de tipo em Java.
D
Errada
Está errada porque depende de considerar falsa a 2ª assertiva, que a base trata como aceitável pelo vínculo com Object e pela ligação dinâmica dos métodos de instância.
E
Errada
Está errada porque volta a considerar falsa a 1ª assertiva, quando ela está correta.
Pegadinha da questão
A confusão real está na 2ª assertiva: se o candidato ler 'não permite classes sem pais' como exigência de superclasse explícita, tende a marcá-la como falsa; para o gabarito, vale a herança implícita a partir de Object. Outra armadilha é confundir suporte por interfaces com herança múltipla de classes.
Dica para questões semelhantes
  • Em questões sobre Java, diferencie herança implícita na hierarquia de classes de exigência de extends explícito no código.
  • Quando aparecer ligação dinâmica, verifique se a afirmação está falando de métodos de instância, porque é esse o núcleo aceito pela base.
  • Se o enunciado mencionar interfaces e herança múltipla, trate isso como suporte à herança múltipla de tipo, não como herança múltipla de classes.

Clique para visualizar este gabarito

Visualize o gabarito desta questão clicando no botão abaixo

Comentários

Veja os comentários dos nossos alunos

a) legal.

b) não. quer dizer que projetos sem herança não funciona no java?

herança é um recurso, não uma obrigatoriedade.

c) legal. acho que o examinador queria que vc soubesse do problema do diamante.

questão bem confusa.

JAVA não suporta herança múltipla para evitar o problema do diamante: uma classe-filha herda de duas classe-mãe, que herdam de outra classe-mãe. forma um "diamante".

NO ENTANTO, para contornar esse problema e limitação, JAVA utiliza interfaces como uma ALTERNATIVA.

examinador disse tipo isso aqui: "java é tão esperto que contorna o problema do diamante por meio de interfaces".

fui por esse meio de entendimento pq o examinador usou "forma de suporte".

mas, como sabemos, dependerá do humor do examinador.

Em Java, a classe Object (localizada no pacote java.lang) é a raiz de toda a hierarquia de classes. Isso significa que absolutamente todas as classes no Java, sejam elas criadas por você ou nativas da linguage, herdam direta ou indiretamente de Object.

questão cruel

Java permite classes sem pai explícito;

mas toda classe possui um ancestral implícito ().

class Pessoa {

}

é o mesmo que

class Pessoa extends Object {

}

questão cruel

Java permite classes sem pai explícito;

mas toda classe possui um ancestral implícito ().

class Pessoa {

}

é o mesmo que

class Pessoa extends Object {

}

Clique para visualizar este comentário

Visualize os comentários desta questão clicando no botão abaixo