prova-02-ifma-informatica-integrado-iv-poo_resp

Propaganda
INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO MARANHÃO –
IFMA / CAMPUS BACABAL
CURSO: INFORMÁTICA – INTEGRADO IV / DISCIPLINA: PROG. ORIENTADA A OBJ.
PROFESSOR: ALAN SANTOS
ALUNO: __________________________________________________________
2ª AVALIAÇÃO
1. Defina superclasse e subclasse e dê exemplos.
Superclasse é a classe base (ou classe mãe) que é estendida por outra com objetivo de
reutilizar seus membros (varáveis e métodos). A subclasse é a classe filha, isto é, a que
estendeu a superclasse. Exemplo: Carro é um Veículo; Moto é um Veículo, portanto ambas
são subclasses da superclasse Veiculo.
2. O que é uma classe abstrata?
Classe abstrata é uma classe que não tem instâncias. Uma classe abstrata é escrita com a
expectativa de que suas subclasses concretas acrescentem algo à sua estrutura e
comportamento, normalmente através da aplicação de suas operações abstratas.
3. Em Java, para que se usa o operador super?
 Para o mesmo que se usa this.
 Para ter uma referência para um novo objeto da superclasse.
 Através do super a classe-filha tem acesso a todos os atributos e métodos da classemãe, mesmo que eles sejam private.
 Para reusar código da classe-mãe na classe-filha. Através do super a subclasse tem
acesso a construtores e métodos da superclasse.
 Serve para sobrescrever construtores da superclasse.
4. Em Java, para uma classe herdar outra classe deve-se usar a palavra reservada:
a) extends
b) inherit
c) implements
d) protected
e) instanceof
5. Com base na classe Pessoa abaixo, reutilizando-a por meio de herança, crie uma classe
Aluno, que declare:
a) uma variável de instância matrícula;
b) um construtor que inicialize o nome e a matrícula com base em seus parâmetros;
c) um método toString() que retorne uma String contendo a matrícula e o nome do aluno.
class Pessoa {
private String nome;
public Pessoa(String nome) {
this.nome = nome;
}
public String toString() {
return "Nome: " + nome;
}
}
class Aluno extends Pessoa {
private int matricula;
public Aluno(String nome, int matricula) {
super(nome)
this.matricula = matricula;
}
public String toString() {
return super.toString() + "\nMatrícula: " + matricula;
}
}
6. Em Java, para que um método de uma superclasse não seja sobrescrito em suas
subclasses, aplica-se o modificador:
a) static.
b) public.
c) final.
d) protected.
e) abstract.
7.
a)
b)
c)
d)
Em relação a linguagem de programação Java é correto afirmar que:
Todos os métodos de uma classe abstrata devem ser abstratos.
Uma classe pode ter várias superclasses, mas pode implementar apenas uma interface.
Não é possível instanciar uma interface, mas é possível instanciar uma classe abstrata.
Os descendentes não-abstratos de uma classe abstrata não precisam implementar todos
os seus métodos abstratos.
e) Uma classe que implementa uma interface e deixa de definir algum método dessa
interface deve ser declarada como abstrata.
8. Marque a única alternativa FALSA sobre interfaces (conceito de orientação a objetos) em
Java:
a) Interfaces em Java são representadas usando classes abstratas.
b) Uma classe pode implementar várias interfaces e definir outros métodos também.
c) Uma classe pode herdar uma única classe, mas pode implementar várias interfaces.
d) Implementar interfaces, assim como herdar classes, possibilita o polimorfismo.
e) Uma interface só pode ter assinatura de métodos e atributos constantes.
9.
a)
b)
c)
Polimorfismo é
a multiplicidade de atributos de determinada classe.
a propriedade de um diagrama de classes ter múltiplas classes possuidoras de atributos.
a habilidade de um atributo ou variável poder identificar instâncias de classes com
atributos dependentes.
d) a propriedade de uma instrução poder apontar para múltiplos objetos de uma mesma
classe sem implicações de desempenho.
e) a habilidade pela qual uma única operação ou nome de atributo pode ser definido em mais
de uma classe e assumir implementações diferentes em cada uma dessas classes.
10. Considere a hierarquia de classes: MeioDeLocomocao é superclasse de Bicicleta e Moto;
Moto implementa a interface Motorizado. Sendo assim, considerando o fragmento de
código em Java abaixo, O que acontecerá ao tentar compilar e executar esse código? Por
quê?
MeioDeLocomocao meio;
Bicicleta b1, b2; Moto m1, m2;
Motorizado motor;
b1 = new Bicicleta();
meio = b1;
b2 = (Bicicleta)meio;
m1 = new Moto();
motor = m1;
m2 = (Moto)meio;
O código compilará sem erros, porém ao executar o código ocorrerá um erro em tempo de
execução na última linha. Esse erro é devido ao fato de não ser possível converter o objeto
referenciado pela variável meio, que é do tipo MeioDeLocomocao, mas guarda um objeto do
tipo Bicibleta, para atribui-lo à variável m2 que é do tipo Moto
Download