Prof. Marcelo Henrique dos Santos AULA 06 CLASSE ABSTRATA E

Propaganda
AULA 06
CLASSE ABSTRATA E INTERFACE
CLASSES ABSTRATAS
Às vezes utilizamos classes que servem apenas para representar conceitos e
economizar na digitação de código;
Desta forma podemos ter classes que nunca serão instanciadas, estas são
chamadas de classes abstratas;
Usamos a palavra-chave abstract para impedir que ela possa ser instanciada.
Também existem métodos que são abstratos. Estes métodos obrigam uma
classe a sempre escrever a funcionalidade do método.
Ele indica que todas as classes filhas (concretas) devem reescrever esse
método ou não compilarão.
INTERFACE
O uso de herança aumenta o acoplamento entre as classes (o quanto uma
classe depende da outra);
Isto acaba fazendo com que o programador das classes filhas tenha que
conhecer a implementação da classe pai e vice-versa.
Isto é um problema da herança e não do polimorfismo;
Entretanto podemos resolver isto com a ajuda das interfaces
Interface é um “contrato” que define as condições que uma classe deve fazer
para ter um determinado status;
Ao assinar esse “contrato” a classe se compromete a explicar como será feita
certos métodos.
Uma interface pode definir uma série de métodos, mas nunca conter
implementação deles;
Ela só expõe o que o objeto deve fazer, e não como ele faz, nem o que ele
tem;
Como ele faz vai ser definido em uma implementação dessa interface.
O objetivo do uso de uma interface é deixar seu código mais flexível e
possibilitar a mudança de implementação sem maiores dificuldades.
Prof. Marcelo Henrique dos Santos
COMPARAÇÃO: INTERFACE X CLASSE ABSTRATA
Prof. Marcelo Henrique dos Santos
Prof. Marcelo Henrique dos Santos
EXERCÍCIO
ICMS pode ser diferenciado dependendo do tipo de produto.
Para evitar que um programa chame cada classe específica para calcular o
ICMS, pode-se criar uma interface que vai ser acionada pelo programa. A
implementação dela está nas classes específicas de cada produto.
public interface ICMS {
static final double aliquota = 0.9;
public abstract double meuICMS();
}
IMPLEMENTA
class Carro implements ICMS {
String fabricante, modelo;
int ano, vel_max, peso;
float preco;
int num_rodas = 4;
int
} num_portas;
public double meuICMS() {
return 0.17 * preco;
}
}
class Consultoria implements ICMS {
double valor;
public double meuICMS() {
return 0.1 * valor;
}
REFERÊNCIAS BIBLIOGRÁFICAS
“Conceitos Essenciais de Computação com Java”. C. Horstmann. Ed.
Bookman.
“Java – Como Programar”, Deitel & Deitel, 6a. Edição, Ed. Prentice Hall. 2005.
“Interfaces X Classes Abstratas”. DevMedia. Artigo disponível no seguinte link:
http://www.devmedia.com.br/interfaces-x-classes-abstratas/13337. (Acessado
em 30/08/13).
Memória de aula do professor Vieira, J. R. “Classe Abstrata e Interface”.
Memória de aula do professor Faria, Tadeu dos Reis “Revisão conceitos”.
Prof. Marcelo Henrique dos Santos
Download