poo - aula 13 - classe abstrata e interface
DESCRIPTION
Aula 13 da disciplina de Programação Orientada a Objetos, ministrada pelo Departamento de Computação da Universidade Federal de Sergipe. Apresenta os conceitos sobre Classe Abstrata e Interface.TRANSCRIPT
Classe Abstrata e Interface
Universidade Federal de SergipeDepartamento de ComputaçãoProgramação Orientada a Objetos
Última Atualização em Novembro de 2011
Felipe J. R. Vieira
2
Recapitulando
103403 – Programação Orientada a Objetos
3103403 – Programação Orientada a Objetos
Sumário
➢ Classe Abstrata; e
➢ Interface.
4
Classes Abstratas
103403 – Programação Orientada a Objetos
➢ 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..
5
Classes Abstratas
103403 – Programação Orientada a Objetos
➢ 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.
6
Interface
103403 – Programação Orientada a Objetos
➢ 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.
7
Interface
103403 – Programação Orientada a Objetos
➢ Isto é um problema da herança e não do polimorfismo;
➢ Entretanto podemos resolver isto com a ajuda das interfaces.
8
Interface
103403 – Programação Orientada a Objetos
➢ 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.
9
Interface
103403 – Programação Orientada a Objetos
➢ 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.
10
Interface
103403 – Programação Orientada a Objetos
➢ 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.
11
Referências
103403 – Programação Orientada a Objetos
➢ Java: Como Programar 6ª Edição.
➢ Material da Caelum.