Universidade Federal de Sergipe
Departamento de Computação
Programação Orientada a Objetos




           Classe Abstrata e Interface

Felipe J. R. Vieira




        Última Atualização em Novembro de 2011
Recapitulando




         103403 – Programação Orientada a Objetos   2
Sumário



  ➢   Classe Abstrata; e

  ➢
      Interface.




               103403 – Programação Orientada a Objetos   3
Classes Abstratas


   ➢ As 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..

             103403 – Programação Orientada a Objetos   4
Classes Abstratas


   ➢Também existente 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.




            103403 – Programação Orientada a Objetos   5
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 tenham que conhecer a
   implementação da classe pai e vice-versa.




            103403 – Programação Orientada a Objetos   6
Interface


   ➢ Isto é um problema da herança e não do
   polimorfismo;

   ➢Entretanto podemos resolver isto com a ajuda
   das interfaces.




            103403 – Programação Orientada a Objetos   7
Interface


   ➢ 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.




            103403 – Programação Orientada a Objetos   8
Interface


   ➢ Uma interface pode definir um 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.



            103403 – Programação Orientada a Objetos   9
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.




            103403 – Programação Orientada a Objetos   10
Referências


  ➢   Java: Como Programar 6ª Edição.

  ➢   Material da Caelum.




              103403 – Programação Orientada a Objetos   11

POO - Aula 13 - Classe Abstrata e Interface

  • 1.
    Universidade Federal deSergipe Departamento de Computação Programação Orientada a Objetos Classe Abstrata e Interface Felipe J. R. Vieira Última Atualização em Novembro de 2011
  • 2.
    Recapitulando 103403 – Programação Orientada a Objetos 2
  • 3.
    Sumário ➢ Classe Abstrata; e ➢ Interface. 103403 – Programação Orientada a Objetos 3
  • 4.
    Classes Abstratas ➢ As 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.. 103403 – Programação Orientada a Objetos 4
  • 5.
    Classes Abstratas ➢Também existente 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. 103403 – Programação Orientada a Objetos 5
  • 6.
    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 tenham que conhecer a implementação da classe pai e vice-versa. 103403 – Programação Orientada a Objetos 6
  • 7.
    Interface ➢ Isto é um problema da herança e não do polimorfismo; ➢Entretanto podemos resolver isto com a ajuda das interfaces. 103403 – Programação Orientada a Objetos 7
  • 8.
    Interface ➢ 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. 103403 – Programação Orientada a Objetos 8
  • 9.
    Interface ➢ Uma interface pode definir um 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. 103403 – Programação Orientada a Objetos 9
  • 10.
    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. 103403 – Programação Orientada a Objetos 10
  • 11.
    Referências ➢ Java: Como Programar 6ª Edição. ➢ Material da Caelum. 103403 – Programação Orientada a Objetos 11