Prévia do material em texto
Questões Exercicio Aprofundamento De Herança e Polimorfismo Em Java Você acertou 5 de 10 questões Verifique o seu desempenho e continue treinando! Você pode refazer o exercício quantas vezes quiser. Verificar Desempenho A B C D E 1 Marcar para revisão Ano: 2020 Banca: COMPERVE Órgão: TJ�RN Prova: COMPERVE � 2020 � TJ�RN - Analista de Sistemas Sênior �ADAPTADA� Uma interface na linguagem Java é apenas um contrato que a classe deve cumprir com a interface que a implementa. Sobre interfaces na linguagem Java, é correto afirmar: As variáveis são implicitamente public static final. Elas fazem parte de herança. Uma interface pode implementar uma classe. As variáveis e os métodos podem ter qualquer modificador de acesso. Interfaces são equivalentes às classes abstratas. Resposta incorreta Opa! A alternativa correta é a letra A. Confira o gabarito comentado! Gabarito Comentado A B C D E A resposta certa é: As variáveis são implicitamente public static final. 2 Marcar para revisão Ano: 2015 Banca: CETAP Órgão: MPC�PA Prova: CETAP � 2015 � MPCM�PA � Técnico em Informática � Desenvolvimento A herança entre classes, em Java, define-se utilizando a palavra-chave: Inherits References Matches Extends Implements Resposta correta Parabéns, você selecionou a alternativa correta. Confira o gabarito comentado! Gabarito Comentado Na linguagem de programação Java, a herança entre classes é definida utilizando a palavra-chave 'extends'. Esta palavra-chave é usada para indicar que uma classe está sendo derivada de outra classe. As outras opções apresentadas na questão não são utilizadas para definir a herança entre classes em Java. Portanto, a alternativa correta é a 'D'. 3 M i ã A B C D 3 Marcar para revisão Ano: 2012 Banca: CESGRANRIO Órgão: Petrobras Prova: CESGRANRIO � 2012 � BR Distribuidora � Profissional Júnior � Formação Analista de Sistemas � Ênfase em Java � Crm e Web. Nas linguagens orientadas a objeto, existe uma diferença entre a referência a um objeto e o valor do objeto. Em Java, o operador == e o método equals, este definido para a classe Object, apresentam comportamento específico, que tem relação com essa característica. Considere o exemplo de um código Java 6 a seguir: public class Questao { public static void main(String [ ] args) { Integer a,b,c,d,e ; int f ; char r1,r2,r3,r4,r5 ; String s ; a=1; b=1; c = a ; d= b; f=1; e = f; r1� � a.equals(b)? 's' : 'n' ) ; r2� � a.equals(c)? 's' : 'n' ) ; r3� � a==d? 's' : 'n' ) ; r4� � a==e? 's' : 'n' ) ; r5� � a.equals(f)? 's' : 'n' ) ; s = " "+r1+r2+r3+r4+r5 ; System.out.println(s) ; } } Executando-se esse código, em que é possível testar como o comportamento exemplificado foi implementado para a classe Integer e o tipo int, a resposta impressa será: sssss ssnns snnns nnsss E A B C nssss Resposta incorreta Opa! A alternativa correta é a letra A. Confira o gabarito comentado! Gabarito Comentado O código Java apresentado realiza uma série de comparações entre variáveis do tipo Integer e int. As comparações são feitas tanto com o operador == quanto com o método equals. O operador == compara se as referências dos objetos são iguais, enquanto o método equals compara se os valores dos objetos são iguais. No caso do código apresentado, todas as comparações retornam verdadeiro, ou seja, 's'. Portanto, a resposta impressa será 'sssss', o que corresponde à alternativa A. 4 Marcar para revisão Ano: 2010 Banca: FDC Órgão: MAPA Prova: FUNDAÇÃO DOM CINTRA � 2010 � MAPA � Analista de Sistemas Analyse as seguintes sentenças em relação à linguagem Java: I. Java suporta diretamente somente herança simples, entretanto ela permite uma versão de herança múltipla com a implementação da classe virtual abstract. II. Uma classe em Java pode implementar uma ou mais interfaces, para isso basta anexar à definição da classe a palavra-chave implements seguida das interfaces separadas por vírgula. III. Em Java, quando um método é definido como final, ele pode ser sobreposto somente em classes descendentes. Em relação às sentenças supracitadas, pode-se afirmar que apenas: I é verdadeira; II é verdadeira; III é verdadeira; D E A B C I e II são verdadeiras; II e III são verdadeiras. Resposta correta Parabéns, você selecionou a alternativa correta. Confira o gabarito comentado! Gabarito Comentado A sentença II é a única verdadeira entre as apresentadas. Ela afirma corretamente que uma classe em Java pode implementar uma ou mais interfaces, bastando para isso anexar à definição da classe a palavra- chave 'implements' seguida das interfaces separadas por vírgula. As sentenças I e III são falsas. A linguagem Java não suporta herança múltipla, mesmo com a implementação da classe virtual abstract (sentença I�. Além disso, quando um método é definido como final em Java, ele não pode ser sobreposto em classes descendentes (sentença III�. 5 Marcar para revisão Um jogo de computador utiliza a classe Personagem como base para diferentes tipos de personagens, como Guerreiro e Mago. Cada subclasse possui métodos únicos, como atacar para Guerreiro e conjurar para Mago. Qual característica da programação orientada a objetos é exemplificada pela presença de métodos únicos em Guerreiro e Mago? Encapsulamento, através da ocultação de detalhes internos das subclasses. Herança, com Guerreiro e Mago herdando a estrutura de Personagem. Polimorfismo, permitindo que Guerreiro e Mago sejam tratados como Personagem. D E A B C Personagem. Sobrecarga de métodos, onde métodos com o mesmo nome têm parâmetros diferentes. Especialização, onde subclasses adicionam métodos e atributos específicos. Resposta incorreta Opa! A alternativa correta é a letra E. Confira o gabarito comentado! Gabarito Comentado A especialização é evidenciada na adição de métodos únicos (atacar e conjurar) nas subclasses Guerreiro e Mago. Essa característica permite que cada subclasse expanda e personalize sua funcionalidade além da classe base Personagem. 6 Marcar para revisão Ano: 2017 Banca: INSTITUTO AOCP Órgão: EBSERH Prova: INSTITUTO AOCP � 2017 � EBSERH � Analista de Tecnologia da Informação � Processos �HUJB � UFCG� Ao desenvolver um sistema utilizando a linguagem JAVA, alguns conceitos fazem parte da programação, como encapsulamento, herança e polimorfismo. No polimorfismo, temos o conceito de cast implícito. Assinale a alternativa que apresenta o comando que usa cast implícito. Filho objetoFilho = �Filho)objetoPai; Pai objeto = new Filho(); if (c instanceof Alcool) {abastecerAlcool (c);} D E A B double[ ] nota = �7, 8, 9, 1, 4, 2�; void parar() {System.out.println(''Parado!'')}; Resposta correta Parabéns, você selecionou a alternativa correta. Confira o gabarito comentado! Gabarito Comentado O comando "Pai objeto = new Filho();" é um exemplo de cast implícito em Java. Neste caso, estamos criando um novo objeto da classe Filho e atribuindo-o a uma referência da classe Pai. Isso é possível porque a classe Filho é uma subclasse da classe Pai, permitindo que um objeto da classe Filho seja referenciado como um objeto da classe Pai. Este é um exemplo clássico de polimorfismo, onde um objeto pode assumir muitas formas. No caso do cast implícito, o tipo de conversão é feito automaticamente pelo compilador Java, sem a necessidade de uma sintaxe explícita para a conversão de tipos. 7 Marcar para revisão �ACCESS/2020� No que diz respeito à criação de métodos em Java, o qualificador ou modificador define a visibilidade e pode ser de três tipos básicos: I. É visível apenas pela própria classe. É o qualificador mais restritivo. II. É visível pela própria classe, por suas subclasses e pelas classes do mesmo pacote. III. É visível por qualquer classe, sendo o qualificador mais aberto no sentido de que qualquer classe pode usar esse método. Os métodos definidos em I, II e III são respectivamente denominados Private, protected e public. Private,public e protected. C D E A B Public, protected e private. Protected, public e private. Protected, private e public. Resposta correta Parabéns, você selecionou a alternativa correta. Confira o gabarito comentado! Gabarito Comentado Na linguagem de programação Java, os qualificadores de visibilidade são usados para definir o nível de acesso que outras classes têm aos métodos de uma classe. No enunciado, o primeiro tipo �I� é o "private", que é o mais restritivo, pois só permite que o método seja acessado dentro da própria classe. O segundo tipo �II� é o "protected", que permite que o método seja acessado pela própria classe, suas subclasses e outras classes no mesmo pacote. Por fim, o terceiro tipo �III� é o "public", que é o mais permissivo, pois permite que qualquer classe acesse o método. Portanto, a sequência correta é "Private, protected e public", que corresponde à alternativa A. 8 Marcar para revisão Em um sistema de gerenciamento de universidade, uma classe Pessoa é usada como base para as classes Estudante e Professor. A classe Pessoa contém atributos comuns como nome e idade. A herança é aplicada para compartilhar esses atributos com as subclasses. Qual dos seguintes é um exemplo de herança no cenário descrito acima? Estudante e Professor herdam métodos exclusivos de Pessoa. Pessoa é uma interface implementada por Estudante e Professor. C D E A Estudante e Professor são superclasses de Pessoa. Estudante e Professor herdam atributos de Pessoa. Pessoa, Estudante e Professor são classes independentes. Resposta incorreta Opa! A alternativa correta é a letra D. Confira o gabarito comentado! Gabarito Comentado Neste cenário, a herança é demonstrada pelas classes Estudante e Professor herdando atributos da classe Pessoa. Esse é um exemplo clássico de herança em programação orientada a objetos, onde as subclasses compartilham características comuns definidas na classe base. 9 Marcar para revisão Ano: 2009 Banca: INSTITUTO CIDADES Órgão: UNIFESP Prova: INSTITUTO CIDADES � 2009 � UNIFESP � Analista de Tecnologia da Informação �ADAPTADA� Acerca do método equals, analise as seguintes afirmativas: I. O equals recebe um Object como argumento e verifica se ele mesmo é igual ao Object recebido para retornar um boolean exclusivamente false. II. Um exemplo do uso do equals é para datas. Se usarmos criar duas datas, isto é, dois objetos diferentes, contendo 18/08/2009, ao comparar com o ==, receberá false, pois são referências para objetos diferentes. III. Quando comparamos duas variáveis referência no Java, o == verifica se as duas variáveis se referem ao mesmo objeto. Podemos afirmar corretamente que: Apenas a afirmativa I está correta. B C D E Apenas a afirmativa II está correta. Apenas a afirmativa III está correta. As afirmativas I e II estão corretas. As afirmativas II e III estão corretas. Resposta correta Parabéns, você selecionou a alternativa correta. Confira o gabarito comentado! Gabarito Comentado As afirmativas II e III estão corretas. A afirmativa II é verdadeira porque, ao criar duas datas (ou seja, dois objetos diferentes) com a mesma data �18/08/2009� e compará-las com o operador "==", o resultado será false. Isso ocorre porque o operador "==" compara as referências dos objetos, não seus conteúdos. Como são dois objetos diferentes, suas referências também são diferentes, resultando em false. A afirmativa III também é verdadeira, pois quando comparamos duas variáveis de referência no Java com o operador "==", estamos verificando se ambas as variáveis apontam para o mesmo objeto na memória, não se os conteúdos dos objetos são iguais. 10 Marcar para revisão Ano: 2018 Banca: FAURGS Órgão: BANRISUL Prova: FAURGS � 2018 � BANRISUL - Desenvolvimento de Sistemas Considere as afirmações 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 i l ã i d lh d é d é f i d A B C D E 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. Apenas III. I e II. I, II e III. Resposta incorreta Opa! A alternativa correta é a letra B. Confira o gabarito comentado! Gabarito Comentado A alternativa correta é a II. O polimorfismo é um princípio da programação orientada a objetos que permite que objetos de diferentes tipos sejam tratados como objetos de um tipo comum. No contexto da linguagem de programação JAVA, o polimorfismo indica que o tipo real do objeto determina o método a ser chamado. As afirmações I e III estão incorretas. A vinculação tardia ocorre quando a escolha do método é feita durante a execução do programa, não pelo compilador. Já a vinculação antecipada ocorre quando o compilador escolhe o método dentre os possíveis candidatos, não durante a execução do programa.