Buscar

Programação Orientada a Objeto em Java2

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Aprofundamento de Herança e Polimorfismo em Java 
1. Considere duas classes chamadas “Base” e “Derivada”, de tal forma que a primeira é superclasse da última. A 
classe “derivada” atende ao princípio da substituição de Liskov. Analise as afirmações a seguir e marque a opção em que 
todas são corretas. 
I) Derivada não pode sobrescrever os métodos protegidos de “Base”. 
II) Todos os métodos públicos e protegidos de “Derivada” devem ter a mesma assinatura que os de “Base”. 
III) Todos os métodos públicos e protegidos de “Base” que forem redefinidos em “Derivada” devem ter a mesma 
assinatura. 
A) I B) II C) III D) I e III E) I e II 
A alternativa "C" está correta. 
 
2. Estruturas de dados são mecanismos fundamentais para a manipulação de dados e possuem impacto na 
performance de um software. Java fornece implementações de algumas estruturas por meio do Java Collections 
Framework. Sobre o assunto, marque a única opção correta. 
A) Uma desvantagem das coleções é que os iteradores não são providos, precisando ser desenvolvidos, pelo 
programador. 
B) Uma desvantagem das coleções é que não podem ser usadas com tipos de dados criados pelo programador 
(classes), já que sua estrutura é desconhecida. 
C) Nenhuma das estruturas implementa o controle de duplicidade de objetos inseridos. 
D) Mais de um tipo de coleção permite a implementação de fila (FIFO). 
E) A coleção “List” implementa uma lista de prioridades. 
A alternativa "D" está correta. 
 
3. Sobre os métodos “equals” e “hashCode” da classe “Objects”, podemos afirmar que: 
A) Mudanças em “equals” podem ensejar mudanças em “hashCode”, mas o inverso nunca ocorre. 
B) Como “equals” é herdado por todos os objetos, não necessita ser modificado para estabelecer a igualdade de 
objetos. 
C) O método “equals” sempre depende de “hashCode” para estabelecer a igualdade. 
D) A modificação de um sempre imporá a modificação de outro. 
E) Objetos iguais terem código hash distintos viola o contrato geral de “hashCode”. 
A alternativa "E" está correta. 
 
4. Um dos métodos da classe “Objects” é o “toString”, que retorna uma representação textual do objeto. Sobre esse 
método, são feitas as seguintes afirmações: 
I) São informações obrigatórias, mesmo se ele for redefinido, o nome completamente qualificado do objeto e seu 
código hash. 
II) Ele pode ser invocado em um objeto do tipo String. 
III) O código hash informado por “toString” é um identificador único do objeto. 
Marque a opção que contém a afirmativa correta: 
A) I. B) II. C) III. D) I e II. E) II e III. 
A alternativa "B" está correta. 
 
5. Uma classe abstrata em Java é declarada pelo uso do modificador abstract. 
Analise as opções abaixo e marque a correta sobre o assunto. 
A) Se declararmos uma classe como abstrata, seus métodos também deverão ser declarados abstratos. 
B) Uma classe abstrata pode estender uma classe concreta. 
C) Uma classe abstrata admite herança múltipla se as superclasses também forem abstratas. 
D) Uma classe concreta não pode possuir referência para uma classe abstrata. 
E) Um método abstrato não pode ser herdado. 
A alternativa "B" está correta. 
 
6. Considere o trecho de código a seguir: 
1. public class Principal { 
2. //Atributos 
3. private static final Escola ref = new Escola ( ); 
4. 
5. //Métodos 
6. public static void main (String args[]) { 
7. ref.atualizarAtributoNome ("Rio de Janeiro"); 
8. ref = new Escola (); 
9. } 
10. } 
O método “atualizarAtributoNome” atualiza o atributo “nome” de tipo “String” da classe “Escola”. É correto afirmar 
que: 
A) A linha 7 irá gerar erro de compilação, pois “ref” é final. 
B) A linha 8 irá criar uma instância que não é final. 
C) A linha 8 irá gerar erro de compilação, pois “ref” é final. 
D) A linha 3 irá gerar erro de compilação, pois está instanciando uma variável final. 
E) As linhas 7 e 8 precisam ser invertidas para o programa compilar. 
A alternativa "C" está correta. 
 
7. Sobre interfaces em Java, é correto afirmar que: 
A) A omissão do modificador “final” da declaração de um atributo irá gerar erro de compilação. 
B) Um atributo deve sempre ser declarado privado. 
C) Na implementação de uma interface, uma classe precisa implementar apenas os métodos abstratos que usará. 
D) Em uma interface não é necessário declarar os métodos como abstratos. 
E) Nenhum membro de uma interface pode conter corpo. 
A alternativa "D" está correta. 
 
8. Suponha que um programa em Java possua a interface “iContabil”, que é superinterface de “iBalanco”. “iBalanco” 
é implementada pela classe concreta “Balanco”. Julgue as afirmativas: 
I) Podemos usar uma variável do tipo “iContabil” para referenciar um objeto do tipo “Pessoa” e, nesse caso, teremos 
acesso aos métodos de “iContabil” e “iBalanco”. 
II) Não é possível usar uma variável do tipo da superinterface para referenciar um objeto da classe que implementa 
“iBalanco”. 
III) “Balanco” deverá implementar todos os métodos abstratos de “iBalanco” e os de “iContabil” que não forem 
ocultados por “iBalanco”. 
A afirmativa correta é: 
A) Somente I. B) XSomente II. C) Somente III. D) I e II. E) II e III. 
A alternativa "C" está correta.

Mais conteúdos dessa disciplina