Buscar

Interfaces X Classes Abstratas em Java

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

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
Você viu 3, do total de 7 páginas

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

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
Você viu 6, do total de 7 páginas

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

1 
Interfaces X Classes Abstratas 
Com o início do paradigma de desenvolvimento OO, alguns termos se tornam corriqueiros no mundo de 
programadores e analistas de sistema. Classes, herança, polimorfismo são alguns destes termos. 
Herança múltipla 
 
em Java em Java não é possível 
public class Filhote extends Cachorro, Gato 
{ 
} 
 
Mas isso é possível 
public class Filhote implements Cachorro, Gato 
 { 
 
 } 
 
Ou seja, uma determinada classe em Java pode implementar múltiplas interfaces e fazer uso de 
agregação para responder por chamadas a métodos que tecnicamente só poderiam acontecer se 
existisse a "herança múltipla". Algo como: 
 2 
 
 public class Filhote implements ICachorro, IGato{ 
 
 private Cachorro cachorro = new Cachorro(); 
 private Gato gato = new Gato(); 
 @override 
 public void latir(){ 
 cachorro.latir(); 
 } 
 @override 
 public void miar(){ 
 gato.miar(); 
 } 
 
 } 
 
 
Interfaces 
As interfaces são padrões definidos através de contratos ou especificações. Um contrato define 
um determinado conjunto de métodos que serão implementados nas classes que assinarem esse 
contrato. Uma interface é 100% abstrata, ou seja, os seus métodos são definidos 
como abstract, e as variáveis por padrão são sempre constantes (static final). 
Uma interface é definida através da palavra reservada “interface”. Para uma classe 
implementar uma interface é usada a palavra “implements”, descrita na Listagem 8. 
Como a linguagem Java não tem herança múltipla, as interfaces ajudam nessa questão , 
pois bem se sabe que uma classe pode ser herdada apenas uma vez, mas pode implementar 
inúmeras interfaces. As classes que forem implementar uma interface terão de adicionar 
 3 
todos os métodos da interface ou se transformar em uma classe abstrata, veja nos 
exemplos abaixo. 
Na Listagem 1 a interface Conta tem seus métodos sem corpo, apenas com os parâmetros e o 
tipo de retorno. 
 
 
 
 
 
 
 
 
 
Listagem 1: Declaração de uma interface 
interface Conta{ 
 void depositar(double valor); 
 void sacar(double valor); 
 double getSaldo(); 
} 
Neste exemplo da Listagem 2 os métodos são sobrepostos através da interface Conta. 
Listagem 2: Classe Conta Corrente 
public class ContaCorrente implements Conta { 
 private double saldo; 
 private double taxaOperacao = 0.45; 
 @Override 
 public void depositar(double valor) { 
 this.saldo += valor - taxaOperacao; 
 } 
 @Override 
 public double getSaldo() { 
 return this.saldo; 
 } 
 @Override 
 public void sacar(double valor) { 
Conta 
Depositar() 
Sacar() 
getSaldo() 
ContaCorrente 
Saldo 
taxaoperacao 
 
ContaPoupanca 
Saldo 
 
GeradorExtratos 
 
geradorConta 
 4 
 this.saldo -= valor + taxaOperacao; 
 } 
} 
Listagem 3: Classe ContaPoupanca com os métodos sobrepostos da interface Conta 
public class ContaPoupanca implements Conta { 
 private double saldo; 
 @Override 
 public void depositar(double valor) { 
 this.saldo += valor; 
 } 
 @Override 
 public double getSaldo() { 
 return this.saldo; 
 } 
 @Override 
 public void sacar(double valor) { 
 this.saldo -= valor; 
 } 
} 
O método “geradorConta”, da Listagem 4, mostra a entrada de um parâmetro do tipo Conta, 
essa função será útil para a saída de um resultado. 
Listagem 4: Classe GeradorExtratos 
public class GeradorExtratos { 
 
 public void geradorConta(Conta conta){ 
 System.out.println("Saldo Atual: "+conta.getSaldo()); 
 } 
} 
Na Listagem 5 são instanciadas as classes e o gerador de extratos. Na classe 
“GeradorExtratos” é invocado o método que aceita como parâmetro um tipo de “Conta”. 
Listagem 5: Classe TestaContas 
public class TestaContas { 
 
 public static void main(String[] args) { 
 
 ContaCorrente cc = new ContaCorrente(); 
 cc.depositar(1000.10); 
 cc.sacar(300); 
 
 ContaPoupanca cp = new ContaPoupanca(); 
 cp.depositar(500.20); 
 5 
 cp.sacar(50.20); 
 
 GeradorExtrato gerador = new GeradorExtrato(); 
 System.out.print("\nOPERAÇÕES COM INTERFACES E CLASSES - 
PROFESSOR: EDIBERTO MARIANO\n\n"); 
 System.out.print("Conta Corrente = "); 
 gerador.geradorConta(cc); 
 System.out.print("Conta Poupança = "); 
 gerador.geradorConta(cp); 
 } 
 
} 
SAÍDA 
 
 
Abaixo um quadro comparativo para tornar mais fácil a compreensão entre diferenças e 
similaridades entre Classes Abstratas e Interfaces. 
 
 6 
 
 
Leia mais em: Polimorfismo, Classes abstratas e Interfaces: Fundamentos da POO em 
Java http://www.devmedia.com.br/polimorfismo-classes-abstratas-e-interfaces-fundamentos-
da-poo-em-java/26387#ixzz3HjNawC4y 
 7 
INTERFACE EM JAVA 
 
 
 
Pergunta: O conceito definido na linguagem JAVA para descrever o comportamento através de um 
conjunto de métodos abstratos, é denominado de: 
 
 Herança 
 Polimorfismo 
 Agregação 
 Associação 
 Interface

Continue navegando