Programação Orientada a Objetos Interfaces Ludimila Monjardim Casagrande 2012
Interfaces  Interfaces representam:  a parte pública de uma classe de objetos ou de um co...
Interfaces  A interface de um objeto é o conjunto de operações públicas que ele pode realizar.  Um...
Interfaces  As interfaces estabelecem as mensagens que podem ser trocadas entre os componentes de ...
Interfaces  Uma interface é semelhante a uma classe abstrata, pois ambas definem métodos que outras clas...
Interface em Java  interface em Java é uma palavra-chave usada para definir uma coleção de definições de...
Exemplo de Uso de Interface public interface Figura { public abstract double calcularArea( ); } public class Quadrad...
Exemplo de Uso de Interface public class Circulo implements Figura { double raio; public Circulo (double raio) ...
Exemplo de Uso de Interface public class Main { Ob...
Interfaces x Classes Abstratas  Classes abstratas podem conter métodos não- abstratos, isto é, que contê...
Interfaces x Classes Abstratas  Se existirem campos (atributos) nas interfaces, eles serão implicitament...
Interfaces x Classes Abstratas  A diferença essencial entre classes abstratas e interfaces em Java é que...
Múltiplas Interfaces public interface Impressora { public void imprime(Documento d); Uma c...
Interfaces e Sub-interfaces  Assim como uma classe B pode estender outra classe A, uma interface I2 pode...
Interfaces e Sub-interfaces Classe A Interface I1 Interface I2 ...
Em síntese...  Uma interface estabelece uma espécie de contrato que é obedecido pelas classes que a ...
Bibliografia Sugerida  Orientação a Objetos em Java. K19 Treinamentos. http://www.k19.com.br...
of 17

POO - 17 - Interfaces

Published on: Mar 4, 2016
Published in: Technology      
Source: www.slideshare.net


Transcripts - POO - 17 - Interfaces

  • 1. Programação Orientada a Objetos Interfaces Ludimila Monjardim Casagrande 2012
  • 2. Interfaces  Interfaces representam:  a parte pública de uma classe de objetos ou de um componente de software;  uma especificação ou funcionalidades esperadas;  o comportamento padrão que deve ser apresentado por todas as classes que as implementam.Interfaces ©2012 Ludimila Monjardim Casagrande 2
  • 3. Interfaces  A interface de um objeto é o conjunto de operações públicas que ele pode realizar.  Um objeto da classe Lâmpada, por exemplo, tem como interface as operações:  acender  apagar Lâmpada  Qualquer outra requisição feita • acender a esse objeto será considerada • apagar inválida.Interfaces ©2012 Ludimila Monjardim Casagrande 3
  • 4. Interfaces  As interfaces estabelecem as mensagens que podem ser trocadas entre os componentes de software e ocultam os detalhes de implementação. executar_cobrançaInterfaces ©2012 Ludimila Monjardim Casagrande 4
  • 5. Interfaces  Uma interface é semelhante a uma classe abstrata, pois ambas definem métodos que outras classes devem implementar.  Uma classe abstrata pode conter métodos abstratos que as classes que irão estendê-la devem implementar.  Uma interface também define métodos que deverão ser implementados por classes que venham a implementar a interface.  Assim como classes abstratas, uma interface não pode ser instanciada.Interfaces ©2012 Ludimila Monjardim Casagrande 5
  • 6. Interface em Java  interface em Java é uma palavra-chave usada para definir uma coleção de definições de métodos e de constantes.  Essa coleção também é comumente denominada especificação da classe.  Uma interface pode ser implementada por classes e, para isso, é utilizada a palavra-chave implements.  Interfaces admitem apenas os níveis de acesso public e default.Interfaces ©2012 Ludimila Monjardim Casagrande 6
  • 7. Exemplo de Uso de Interface public interface Figura { public abstract double calcularArea( ); } public class Quadrado implements Figura { double lado; public Quadrado(double lado) { this.lado = lado; Como a classe Quadrado } implementa a interface Figura, então, o método public double calcularArea( ) { calcularArea( ) deve double area = 0; obrigatoriamente ser area = lado * lado; implementado. return area; } }Interfaces ©2012 Ludimila Monjardim Casagrande 7
  • 8. Exemplo de Uso de Interface public class Circulo implements Figura { double raio; public Circulo (double raio) { this.raio = raio; } public double calcularArea( ) { double area = 0; area = 3.14 * raio * raio; return area; } }Interfaces ©2012 Ludimila Monjardim Casagrande 8
  • 9. Exemplo de Uso de Interface public class Main { Observe que uma interface não pode ser instanciada, public static void main(String[] args) { mas é possível um objeto, declarado como Figura f1 = new Quadrado(4); sendo do tipo definido por uma interface, receber Figura f2 = new Circulo(2); objetos de classes que implementam tal interface. System.out.println("Área da Figura 1 é: " + f1.calcularArea( ) + "n“ + "Área da Figura 2 é: " + f2.calcularArea( )); } }Interfaces ©2012 Ludimila Monjardim Casagrande 9
  • 10. Interfaces x Classes Abstratas  Classes abstratas podem conter métodos não- abstratos, isto é, que contêm implementação e que podem ser herdados e utilizados por instâncias das subclasses.  As interfaces não podem conter nenhum método com implementação, todos os seus métodos são implicitamente abstract e public e não possuem corpo.  Os modificadores public e abstract podem ser omitidos sem qualquer efeito colateral.Interfaces ©2012 Ludimila Monjardim Casagrande 10
  • 11. Interfaces x Classes Abstratas  Se existirem campos (atributos) nas interfaces, eles serão implicitamente considerados public, static e final, isto é, constantes públicas, devendo, portanto, ser inicializados na sua declaração.  Se uma classe abstrata contiver apenas métodos abstratos, então, ela pode ser criada como uma interface, que terá o mesmo propósito de determinar um comportamento padrão que deve ser apresentado por todas as classes que a implementa.Interfaces ©2012 Ludimila Monjardim Casagrande 11
  • 12. Interfaces x Classes Abstratas  A diferença essencial entre classes abstratas e interfaces em Java é que uma subclasse somente pode herdar de uma única classe (abstrata ou não), enquanto qualquer classe pode implementar várias interfaces simultaneamente.  Interfaces são, portanto, um mecanismo simplificado de implementação de “herança múltipla” em Java, que possibilita que mais de uma interface determine os métodos que uma classe herdeira deve implementar.Interfaces ©2012 Ludimila Monjardim Casagrande 12
  • 13. Múltiplas Interfaces public interface Impressora { public void imprime(Documento d); Uma classe pode } implementar mais de uma interface, assumindo assim vários public interface Fax { comportamentos. public void transmite(Documento d); } public class FaxImpressora implements Impressora, Fax { public void imprime(Documento d) { ... } public void transmite(Documento d) { ... } }Interfaces ©2012 Ludimila Monjardim Casagrande 13
  • 14. Interfaces e Sub-interfaces  Assim como uma classe B pode estender outra classe A, uma interface I2 pode estender outra interface I1. Desse modo, quando uma classe C implementar I2, terá também obrigatoriamente que implementar os métodos definidos na interface I1.  Um bom exemplo disso é a interface java.util.List, da API da linguagem Java, que estende a interface Collection, também do pacote java.util.  API do Java: http://docs.oracle.com/javase/7/docs/api/Interfaces ©2012 Ludimila Monjardim Casagrande 14
  • 15. Interfaces e Sub-interfaces Classe A Interface I1 Interface I2 Interface I3 Classe B Classe CInterfaces ©2012 Ludimila Monjardim Casagrande 15
  • 16. Em síntese...  Uma interface estabelece uma espécie de contrato que é obedecido pelas classes que a implementam.  Sendo assim, quando uma classe implementa uma interface, garante-se que todas as funcionalidades especificadas pela interface serão oferecidas pela classe.Interfaces ©2012 Ludimila Monjardim Casagrande 16
  • 17. Bibliografia Sugerida  Orientação a Objetos em Java. K19 Treinamentos. http://www.k19.com.br/downloads/apostilas-java  Java: Como programar. Autores: H. M. Deitel e P. J. Deitel. Editora: Pearson – 6ª Edição.  Complete Java 2 Certification. Study Guide - Sybex.Interfaces ©2012 Ludimila Monjardim Casagrande 17

Related Documents