Buscar

pgOO 8 classe abstrata interface

Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original

Programação Orientada a Objetos
Classes Abstratas
* de 7
Classe abstrata
Em alguns casos, uma superclasse torna-se tão geral que acaba sendo vista como um modelo para outras classes e não como uma classe com instâncias específicas que são usadas;
Não representam um tipo concreto no sistema sendo modelado. 
Não pode ser instanciada;
Pode ou não conter métodos abstratos;
Pode conter atributos;
* de 7
Não devemos permitir a criação de objetos da classe Conta.
O método calcularImposto possui implementação diferente nas classes filhas.
Problema
* de 7
Definir a classe Conta como abstrata;
Definir o método como calcularImposto abstrato;
Solução
* de 7
* de 7
Só pode ser inserido numa classe abstrata;
Não possui implementação, apenas assinatura;
É obrigado que as classes filhas implementem o método abstrato.
Método abstrato
* de 7
Programação III
Interface
* de 7
Interface
Modela um comportamento esperado para as classes que à implementam;
Não pode ser instanciada;
Todos os métodos não possuem implementação (abstratos);
Não pode conter atributos, somente constantes;
A classe que implementa uma interface, obrigatoriamente deve implementar todos seus métodos.
* de 7
Problema:
Interface
* de 7
Solução:
Interface
* de 7
Exemplo:
public interface Tributavel {
 double calcularImposto();
}
public class Previdencia extends Conta implements Tributavel {
 double calcularImposto();
 //implementação do método
 }
}
Interface
* de 7
Interface X Herança
Com interfaces as alterações pontuais em determinados trechos é mais fácil;
Priorizar a herança pode diminuir a quantidade de código escrito;
Em Java não existe herança múltipla essa limitação pode ser solucionada com interface.
* de 7
Exercício
Resolva os exercícios da atividade 3
* de 7
Observações:
A classe Produto é abstrata;
O método calcularPrecoVenda da classe Produto é abstrato;
 
Regras:
Subclasse Livro:
Método reescrito calcularPrecoVenda()
Calcula 10% sobre o preço de custo e armazena no atributo 
precoVenda (precoVenda= precoCusto* 1.1).
Subclasse Cds: 
Método reescrito calcularPrecoVenda()
Calcula 15% sobre o preço de custo e armazena no atributo 
precoVenda (precoVenda= precoCusto * 1.15).
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*

Teste o Premium para desbloquear

Aproveite todos os benefícios por 3 dias sem pagar! 😉
Já tem cadastro?

Outros materiais