Logo Passei Direto
Buscar
Um desenvolvedor Java SE possui, em uma aplicação, duas subclasses B e C, estendendo a mesma superclasse A. Na superclasse A, há o método calcularValor, também presente nas duas subclasses B e C, mas implementado de maneiras diferentes. A partir do método main de uma classe principal, utilizou-se o seguinte bloco de código: A t1 = new A(); System.out.println(t1.calcularValor()); A t2 = new B(); System.out.println(t2.calcularValor()); A t3 = new C(); System.out.println(t3.calcularValor()); Após compilar e executar a aplicação, foram exibidos, na tela, os valores 4, 9 e 5.
Nessa aplicação, evidencia-se o uso de:
Sobrecarga de métodos.
Métodos abstratos.
Métodos estáticos.
Polimorfismo.
Sobrecarga de construtor.
User badge image
Ensinando Através de Questões

há 2 anos

Respostas

User badge image

Ed Verified user icon

há 2 anos

Vamos analisar a situação apresentada. Temos uma superclasse A e duas subclasses B e C, cada uma implementando o método `calcularValor` de maneira diferente. Quando chamamos `calcularValor` a partir de referências do tipo A, mas que apontam para instâncias de B e C, o método que é executado é aquele que corresponde à instância real do objeto, não à referência. Isso é um exemplo clássico de polimorfismo, onde o mesmo método pode ter comportamentos diferentes dependendo do objeto que o invoca. Agora, vamos analisar as alternativas: - Sobrecarga de métodos: Refere-se a ter múltiplos métodos com o mesmo nome, mas com diferentes parâmetros. Não é o caso aqui. - Métodos abstratos: São métodos que não têm implementação na superclasse e devem ser implementados nas subclasses. Não foi mencionado que `calcularValor` é abstrato. - Métodos estáticos: São métodos que pertencem à classe e não à instância. O polimorfismo não se aplica a métodos estáticos. - Polimorfismo: É exatamente o que está acontecendo aqui, onde o mesmo método `calcularValor` se comporta de maneira diferente dependendo da instância (B ou C). - Sobrecarga de construtor: Refere-se a ter múltiplos construtores na mesma classe com diferentes parâmetros. Não é relevante para o caso apresentado. Portanto, a alternativa correta é: Polimorfismo.

Essa resposta te ajudou?

0
Dislike0

Ainda não achou a resposta?

  • Integrado com os principais modelos de IA do mercado
  • Respostas em segundos
  • IA treinada para estudantes brasileiros.
PasseIA logoEvolua sua forma de estudar

Cadastre-se ou realize login

Ainda com dúvidas?

Envie uma pergunta e tenha sua dúvida de estudo respondida!

Essa pergunta também está no material:

Mais perguntas desse material

Ao analisar um determinado trecho de código em um programa Java, você se depara com uma determinada classe "Pedido" que possui os atributos comprador e valorTotal declarados com a utilização do modificador de acesso "private". Ao continuar a análise, você verifica métodos públicos chamados getComprador, getValorTotal, setComprador e setValorTotal. Considerando os conceitos de orientação a objetos e a utilização dos modificadores para proteção de atributos, bem como métodos get e set acessíveis externamente a classe, marque a opção que melhor representa a prática aplicada.
Herança
Dependência
Polimorfismo
Abstração
Encapsulamento

Considere as afirmacoes abaixo sobre polimorfismo na linguagem de programação JAVA. I -A vinculação tardia ocorre se o compilador escolher um método dentre os possíveis candidatos. II -O polimorfismo indica o princípio de que o tipo real do objeto determina o método a ser chamado. III - A vinculação antecipada ocorre se a escolha do método é feita quando o programa está sendo executado. Quais estão corretas?
Apenas I.
Apenas II.
I, II e III.
Apenas III.
I e II.

Analise o código a seguir:
De acordo com a análise do código, determine a alternativa que descreve, corretamente, a função do método yield(), na linha 16.
Faz com que a thread corrente pause, possibilitando que outra thread seja executada.
Atribui um nome a uma thread em execução.
Permite a implantação de uma concorrência sincronizada.
Efetua o registro da thread no schduler.
Atribui o estado de inoperante, colocando-a no estado de sleep().

Segundo o padrão DAO, temos métodos voltados para consulta ao banco de dados e retorno de entidades e coleções, seguindo as conversões necessárias para efetuar o mapeamento objeto-relacional. Observe a linha de código apresentada a seguir. De acordo com os passos necessários para implementar o método de consulta no DAO, qual seria a linha de código que iria sucedê-la?
ResultSet rs = st.executeUpdate(''select * from ALUNOS'');
ResultSet rs = st.executeQuery(''select * from ALUNOS'');
List ls = st().executeUpdate(''select * from ALUNOS'');
List< Aluno > ls = st.prepareStatement(''select * from ALUNOS'');

Mais conteúdos dessa disciplina