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á 10 meses

Respostas

User badge image

Ed Verified user icon

há 10 meses

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

Experimente
o Premium! 🤩

Libere respostas sem pagar

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