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 verificar se as três assertivas podiam ser lidas como verdadeiras no plano conceitual cobrado: abstração, ligação dinâmica associada ao polimorfismo por sobreposição e interfaces como suporte à herança múltipla. Nessa leitura, a sequência é V – V – V, correspondente à alternativa B.

Tema central: OOP em Java
Análise das alternativas
A
Errada
Está errada porque marca como falsas a 1ª e a 3ª assertivas. A 1ª corresponde à definição usual de abstração em OOP, e a 3ª corresponde corretamente ao uso de interfaces como suporte à herança múltipla em Java.
B
Certa
A alternativa B corresponde ao gabarito oficial porque, na base de decisão adotada, as três assertivas são verdadeiras. A 1ª está correta ao definir abstração como seleção das características essenciais e ocultação de detalhes irrelevantes. A 2ª foi considerada verdadeira no enfoque de prova por relacionar a hierarquia de herança em Java à ligação dinâmica de métodos de instância sobrescritos, o que se associa ao polimorfismo por inclusão/sobreposição. A 3ª também está correta porque Java não admite herança múltipla de classes, mas usa interfaces como mecanismo de suporte à herança múltipla de tipo.
C
Errada
Está errada porque trata a 3ª assertiva como falsa. Pela base adotada pela banca, interfaces realmente fornecem suporte à herança múltipla em Java, ainda que não se trate de herança múltipla de classes.
D
Errada
Está errada porque depende de considerar falsa a 2ª assertiva. O gabarito oficial só se sustenta porque a banca adotou como verdadeira, em leitura conceitual de prova, a afirmação sobre hierarquia de herança e dynamic binding em métodos de instância.
E
Errada
Está errada porque marca a 1ª assertiva como falsa. Isso contraria o conceito cobrado: abstração é justamente focar características e comportamentos essenciais, com supressão de detalhes não relevantes.
Pegadinha da questão
A armadilha está na 2ª assertiva, cuja formulação é imprecisa em leitura técnica estrita, mas foi aceita pela banca na interpretação conceitual de prova.
Dica para questões semelhantes
  • Em itens de Java e OOP, abstração costuma ser descrita como foco no essencial e ocultação de detalhes irrelevantes.
  • Herança múltipla de classes não existe em Java; interfaces podem cumprir esse papel como suporte à herança múltipla de tipo.

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