SlideShare uma empresa Scribd logo
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 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
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
Interfaces

       As interfaces estabelecem as mensagens que
             podem ser trocadas entre os componentes de
             software e ocultam os detalhes de implementação.


                                 executar_cobrança




Interfaces                  ©2012 Ludimila Monjardim Casagrande   4
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
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
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
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
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
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
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
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
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
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
Interfaces e Sub-interfaces
             Classe A       Interface I1




                            Interface I2                      Interface I3
             Classe B




                              Classe C




Interfaces              ©2012 Ludimila Monjardim Casagrande                  15
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
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

Mais conteúdo relacionado

PDF
POO - 11 - Prática de Herança
PDF
POO - 16 - Polimorfismo
PPTX
Programação Orientado a Objetos
PDF
Programação Orientada a Objetos
PDF
POO - 01 - Introdução ao Paradigma Orientado a Objetos
PDF
POO - 10 - Herança
PDF
Aula 1 - Introdução a POO
PDF
POO - 19 - Elementos Estáticos
POO - 11 - Prática de Herança
POO - 16 - Polimorfismo
Programação Orientado a Objetos
Programação Orientada a Objetos
POO - 01 - Introdução ao Paradigma Orientado a Objetos
POO - 10 - Herança
Aula 1 - Introdução a POO
POO - 19 - Elementos Estáticos

Mais procurados (20)

PDF
POO - 18 - Sobrecarga e Sobreposição de Métodos
PPTX
JAVA - ENCAPSULAMENTO
PDF
Aula 02 - Principios da Orientação a Objetos (POO)
PDF
Banco de Dados I Aula 06 - Generalização e Especialização
PDF
Java orientação a objetos (interfaces)
PDF
POO - Aula 09 - Herança
PPTX
Modelagem de Dados
PPTX
TDD - Test Driven Development
PPTX
Programação orientada a objetos
PPTX
Java: Heranca e polimorfismo
PDF
Aula 09 - introducao oo
PDF
Programação Orientação a Objetos - Herança
PDF
Tutorial - Criando Banco com MySQL Workbench
PPT
PDF
02 - Orientação a objetos e revisão de C# v1.5
POT
Algoritmo 06 - Array e Matrizes
PPT
Curso : Introdução Orientação a Objetos
PPTX
Banco de dadados MySQL com PHP
PDF
Banco de dados - Mapeamento MER - Relacional
PPTX
Uml diagrama de sequencia
POO - 18 - Sobrecarga e Sobreposição de Métodos
JAVA - ENCAPSULAMENTO
Aula 02 - Principios da Orientação a Objetos (POO)
Banco de Dados I Aula 06 - Generalização e Especialização
Java orientação a objetos (interfaces)
POO - Aula 09 - Herança
Modelagem de Dados
TDD - Test Driven Development
Programação orientada a objetos
Java: Heranca e polimorfismo
Aula 09 - introducao oo
Programação Orientação a Objetos - Herança
Tutorial - Criando Banco com MySQL Workbench
02 - Orientação a objetos e revisão de C# v1.5
Algoritmo 06 - Array e Matrizes
Curso : Introdução Orientação a Objetos
Banco de dadados MySQL com PHP
Banco de dados - Mapeamento MER - Relacional
Uml diagrama de sequencia
Anúncio

Destaque (10)

PPTX
Java Generics
PDF
Interfaces en java
PPTX
Clases abstractas e interfaces en java
PPTX
Interfaces en Java
PPTX
Java interfaces
PPT
Poo Java
PDF
¿Qué es una interface en java?
PPTX
Interfaces en Java
PPTX
Clases abstractas e interfaces
PDF
Generics
Java Generics
Interfaces en java
Clases abstractas e interfaces en java
Interfaces en Java
Java interfaces
Poo Java
¿Qué es una interface en java?
Interfaces en Java
Clases abstractas e interfaces
Generics
Anúncio

Semelhante a POO - 17 - Interfaces (20)

PPTX
Semana 10: Encapsulação, cópia de instâncias, igualdade de instâncias
PDF
Programação OO - Java
ODP
Java 10 Classes Abstratas Interfaces
PDF
A linguagem java
PPTX
10. Encapsulação; Cópia de instâncias; Igualdade de instâncias – Fundamentos ...
PPTX
Padrões de projeto - Adapter, Proxy, Composite e Bridge
PDF
Curso de OO com C# - Parte 01 - Orientação a objetos
PDF
Interfaces e polimorfismo
PDF
Interfaces e Porlimosfismo
PDF
POO - 05 - Ambiente de Desenvolvimento
PPT
Encapsulamento em oo
PDF
Paper NOVL - Naked Objects View Language- InfoBrasil 2012
PDF
Novidades do Java 8
PDF
Computacao distribuida com rmi
PPTX
Interface
PPTX
Arquitetura mix thiagoboufleuhr
ODP
Paradigma Orientado a Objeto
PDF
Interfaces de programação em java2.0.pdf
PPTX
14. Interfaces; Listas e cadeias ligadas; Iteradores – Fundamentos de Program...
Semana 10: Encapsulação, cópia de instâncias, igualdade de instâncias
Programação OO - Java
Java 10 Classes Abstratas Interfaces
A linguagem java
10. Encapsulação; Cópia de instâncias; Igualdade de instâncias – Fundamentos ...
Padrões de projeto - Adapter, Proxy, Composite e Bridge
Curso de OO com C# - Parte 01 - Orientação a objetos
Interfaces e polimorfismo
Interfaces e Porlimosfismo
POO - 05 - Ambiente de Desenvolvimento
Encapsulamento em oo
Paper NOVL - Naked Objects View Language- InfoBrasil 2012
Novidades do Java 8
Computacao distribuida com rmi
Interface
Arquitetura mix thiagoboufleuhr
Paradigma Orientado a Objeto
Interfaces de programação em java2.0.pdf
14. Interfaces; Listas e cadeias ligadas; Iteradores – Fundamentos de Program...

Mais de Ludimila Monjardim Casagrande (17)

PDF
Gerenciamento Ágil de Projetos com Scrum
PDF
POO - 23 - Coleções da API do Java
PDF
POO - 22 - Tratamento de Exceções em Java
PDF
POO - 21 - Java e Banco de Dados
PDF
POO - 20 - Wrapper Classes
PDF
POO - 15 - Passagem de Argumentos
PDF
POO - 14 - Vetores
PDF
POO - 13 - Arrays em Java
PDF
POO - 12 - A Classe Object
PDF
POO - 09 - Entradas e Saídas em Java
PDF
POO - 08 - Prática de Encapsulamento
PDF
POO - 07 - Operadores do Java
PDF
POO - 04 - Variávies em Java
PDF
POO - 06 - Encapsulamento
PDF
POO - 24 - Classes Básicas do Java - Datas
PDF
POO - 03 - Alocação de Memória em Java
PDF
POO - 02 - Fundamentos da Linguagem Java e da Orientação a Objetos
Gerenciamento Ágil de Projetos com Scrum
POO - 23 - Coleções da API do Java
POO - 22 - Tratamento de Exceções em Java
POO - 21 - Java e Banco de Dados
POO - 20 - Wrapper Classes
POO - 15 - Passagem de Argumentos
POO - 14 - Vetores
POO - 13 - Arrays em Java
POO - 12 - A Classe Object
POO - 09 - Entradas e Saídas em Java
POO - 08 - Prática de Encapsulamento
POO - 07 - Operadores do Java
POO - 04 - Variávies em Java
POO - 06 - Encapsulamento
POO - 24 - Classes Básicas do Java - Datas
POO - 03 - Alocação de Memória em Java
POO - 02 - Fundamentos da Linguagem Java e da Orientação a Objetos

Último (20)

PDF
Gestão de transportes básica no SAP S/4HANA, S4611 Col20
PPTX
Aula sobre desenvolvimento de aplicativos
PDF
Mergulho profundo técnico para gestão de transportes no SAP S/4HANA, S4TM6 Col14
PPTX
Aula 18 - Manipulacao De Arquivos python
PPTX
Aula sobre banco de dados com firebase db
PPTX
Curso de Java 14 - (Explicações Adicionais (Classes Abstrata e Interface)).pptx
PPTX
Curso de Java 13 - (JavaEE (JSP e Servlets)).pptx
PPTX
Programação - Linguagem C - Variáveis, Palavras Reservadas, tipos de dados, c...
PPTX
BANCO DE DADOS - AULAS INICIAIS-sgbd.pptx
PDF
Apple Pippin Uma breve introdução. - David Glotz
PDF
20250805_ServiceNow e a Arquitetura Orientada a Serviços (SOA) A Base para Ap...
PPTX
Gestao-de-Bugs-em-Software-Introducao.pptxxxxxxxx
PPTX
Curso de Java 17 - (JEE (Sessões e Cookies)).pptx
PDF
Fundamentos de gerenciamento de ordens e planejamento no SAP TransportationMa...
PPTX
Curso de Java 12 - (JDBC, Transation, Commit e Rollback).pptx
PPTX
Curso de Java 11 - (Serializable (Serialização de Objetos)).pptx
PDF
Custos e faturamento no SAP S/4HANA Transportation Management, S4TM3 Col26
PDF
Custos e liquidação no SAP Transportation Management, TM130 Col18
PDF
Otimizador de planejamento e execução no SAP Transportation Management, TM120...
PPTX
Curso de Java 10 - (IO Manipulação de Arquivos).pptx
Gestão de transportes básica no SAP S/4HANA, S4611 Col20
Aula sobre desenvolvimento de aplicativos
Mergulho profundo técnico para gestão de transportes no SAP S/4HANA, S4TM6 Col14
Aula 18 - Manipulacao De Arquivos python
Aula sobre banco de dados com firebase db
Curso de Java 14 - (Explicações Adicionais (Classes Abstrata e Interface)).pptx
Curso de Java 13 - (JavaEE (JSP e Servlets)).pptx
Programação - Linguagem C - Variáveis, Palavras Reservadas, tipos de dados, c...
BANCO DE DADOS - AULAS INICIAIS-sgbd.pptx
Apple Pippin Uma breve introdução. - David Glotz
20250805_ServiceNow e a Arquitetura Orientada a Serviços (SOA) A Base para Ap...
Gestao-de-Bugs-em-Software-Introducao.pptxxxxxxxx
Curso de Java 17 - (JEE (Sessões e Cookies)).pptx
Fundamentos de gerenciamento de ordens e planejamento no SAP TransportationMa...
Curso de Java 12 - (JDBC, Transation, Commit e Rollback).pptx
Curso de Java 11 - (Serializable (Serialização de Objetos)).pptx
Custos e faturamento no SAP S/4HANA Transportation Management, S4TM3 Col26
Custos e liquidação no SAP Transportation Management, TM130 Col18
Otimizador de planejamento e execução no SAP Transportation Management, TM120...
Curso de Java 10 - (IO Manipulação de Arquivos).pptx

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ça Interfaces ©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 C Interfaces ©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