Analise as afirmações sobre as linguagens de programação. ...
I. O mecanismo de herança em Java ocorre em tempo de compilação, ou seja, todo reaproveitamento de código realizado por herança é imutável em tempo de execução. II. A linguagem C++ possui herança múltipla, Java possui somente herança simples para classes concretas e abstratas, mas possui herança múltipla para a “interface”, já Javascript não possui herança como funcionalidade nativa. III. C++ é uma linguagem compilada, Java é compilada para uma linguagem de máquina intermediária chamada de bytecodes, sendo esta interpretada e Javascript é interpretada.
É correto afirmar que
Gabarito comentado
Confira o gabarito comentado por um dos nossos professores
Alternativa correta: B - somente as afirmativas I e III são verdadeiras.
Vamos analisar cada uma das afirmações para entender o porquê desta alternativa ser a correta:
Afirmativa I: A herança em Java é um mecanismo que permite que uma classe compartilhe código e comportamento de outra classe. Este processo de herança é definido em tempo de compilação, ou seja, as relações de herança entre classes são estabelecidas quando o código é compilado, e não são modificáveis em tempo de execução. Portanto, a afirmativa I é verdadeira.
Afirmativa II: Esta afirmativa possui uma incoerência. C++ de fato suporta herança múltipla, permitindo que uma classe derive de mais de uma classe base. Java, por outro lado, não permite herança múltipla entre classes concretas ou abstratas; uma classe em Java só pode estender uma única classe. No entanto, Java permite herança múltipla de tipos através de interfaces, onde uma classe pode implementar múltiplas interfaces. A parte que menciona o JavaScript está incorreta: JavaScript tem herança, mas usa um modelo baseado em protótipos, que é diferente da herança clássica vista em C++ e Java. Dessa forma, a afirmativa II é falsa.
Afirmativa III: C++ é uma linguagem compilada diretamente para código de máquina nativo do sistema operacional em que o compilador está sendo executado. Java é compilada para bytecodes, que são instruções para a Máquina Virtual Java (JVM), e esses bytecodes são interpretados ou compilados just-in-time para código nativo durante a execução. JavaScript é uma linguagem interpretada, executada tipicamente por um motor de JavaScript no contexto de um navegador ou em um ambiente como Node.js. Então, a afirmativa III está correta.
Com base na análise acima, concluímos que a alternativa correta é a B, pois apenas as afirmativas I e III são verdadeiras.
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
I. CORRETO, depois criada as classes e os relacionamentos em tempo de compilação, não podemos altera-los em tempo de execução.
II. INCORRETO, A linguagem C++ possui herança múltipla, Java possui somente herança simples para classes concretas e abstratas, mas possui herança múltipla para a “interface”, já Javascript não possui herança como funcionalidade nativa.
Acredito que o erro principal é afirmar que javascript não possui herança, como javascript é orientada a objeto, obviamente possui suporte a herança nativa.
III. CORRETO, afirmativa serve para resumir bem as linguagens mencionada.
GABARITO ALTERNATIVA B
Java não admite herança múltipla.
b-
All JavaScript objects inherit properties and methods from a prototype.
https://www.w3schools.com/js/js_object_prototypes.asp
Clique para visualizar este comentário
Visualize os comentários desta questão clicando no botão abaixo