Buscar

turma_A_poos3_aula_8_classe_abstrata_polimorfismo

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

POOS3 – Programação Orientada a Objetos edilson.ifsp@gmail.com 
 
Aula 8 – Classes Abstratas, Polimorfismo 
1. Polimorfismo 
Polimorfismo é a capacidade de um objeto ser referenciado de múltiplas formas. Essa 
característica permite que qualquer subclasse de uma determinada superclasse possa ser tratada 
como uma superclasse. 
É importante destacar que o tipo do objeto é determinado em tempo de execução pelo Java. 
 
Veja o exemplo: “Poos3_Aula08_Polimorfismo_Ex1”. 
 
2. Classes Abstratas 
Uma classe abstrata não pode ser instanciada, ou seja, não é possível utilizar a palavra chave new 
para criar um objeto a partir dessa classe. Dessa forma, a classe abstrata contém código genérico e as 
subclasses especificam as particularidades. 
A utilização de métodos abstratos possibilita a enumeração de características genéricas do 
modelo, mas sem a implementação dos mesmos, obrigando às subclasses a implementação dessas 
funcionalidades abstratas. 
 
Cuidado!! 
 Se a classe possui um ou mais métodos abstratos, ela deve ser, obrigatoriamente, abstrata. 
 As subclasses de uma superclasse abstrata devem oferecer implementações para todos os 
métodos abstratos da superclasse. 
 
Veja os exemplos “Poos3_Aula08_Abstrata_Ex1” e “Poos3_Aula08_Abstrata_Ex2”. 
 
3. Operador instanceof 
O operador instanceof pode ser utilizado para verificar se um objeto é do tipo de uma 
determinada classe. Geralmente, esse operador é utilizado junto ao método equals(). Prefira utilizar 
polimorfismo ao invés de comparações por meio do operador instanceof. 
Veja os exemplos: 
 “Poos3_Aula08_InstanceOf”. 
 “Poos3_Aula08_InstanceOf_Corrigido”. 
 
Qual dos exemplos fornece um código um código mais flexível de melhor manutenção? 
 
4. Para estudar 
 Livro: Java Como Programar (Capítulo 10) ou Livro: Use a Cabeça (Capítulo 8). 
 
5. Exercícios 
5.1. Elabore um programa que permita a escolha e utilização de instrumentos musicais. Após 
escolher um instrumento musical, o usuário pode selecionar entre as seguintes opções: 
“definição”, “tipo” e “tocar”. A definição explica o que é o instrumento, o tipo identifica se o 
instrumento é de corda, percussão, sopro, etc, e “tocar” exibe o som gerado pelo 
instrumento. 
Utilize Classes Abstratas. 
 
5.2. Escreva um programa que contenha as classes Funcionario e Gerente. Adapte o programa 
para: 
a) Criar a classe Assistente, que também é um funcionário, e possui um código de identificação. 
b) Criar as classes Tecnico e Administrativo. Os Assistentes técnicos possuem um bônus salarial 
e os Assistentes administrativos possuem turno (diurno ou noturno) e um adicional noturno. 
 
5.3. Crie uma classe chamada Ingresso contendo o atributo valor e o método imprimeValor(). 
Após isso: 
a) Crie uma classe Vip, que herda de Ingresso e possui um valor adicional. Especifique um 
método que exiba o valor desse ingresso, considerando o valor adicional. 
b) Crie uma classe Normal, que herda de ingresso e possui um método que imprime o tipo de 
ingresso (no caso, “Ingresso Normal”). 
c) Crie uma classe chamada Camarote Superior (possui um valor adicional) e outra chamada 
Camarote Inferior (possui a localização da mesa e métodos para acessar e imprimir essa 
localização). Ambas as classes herdam de Vip. 
 
5.4. Dadas as classes Gato, Cachorro, Leão, Lobo e Animal, e considerando-se que: 
a) Todo animal tenha peso e habitat (indicando somente um continente no qual possa ser 
encontrado). 
b) Todo animal tenha uma forma diferente de se alimentar. 
c) Gato e Cachorro possam brincar (com seres humanos). 
Escreva um programa utilizando o conceito de classes abstratas que contenha um método 
principal para simular a criação de objetos com as características citadas acima. 
Observação: Todo método criado deverá conter em seu corpo apenas uma mensagem indicando o que 
seria implementado ali. Exemplo: “Implementar maneira como um cachorro se alimenta”. 
 
5.5. Elabore um programa para catalogar livros, CDs e DVDs. Os dados comuns dos itens são: 
identificação única, descrição, ano de aquisição e lista de autores. É necessário que os dados 
específicos sejam armazenados também, da seguinte maneira: 
- Para livros, a editora e o ano de publicação. 
- Para CDs, o gênero musical e a identificação das faixas. 
- Para DVDs, o tipo (musical ou filme) e se existem extras.

Outros materiais