poo - aula 13 - classe abstrata e interface

11

Click here to load reader

Upload: felipe-j-r-vieira

Post on 03-Jul-2015

7.456 views

Category:

Documents


1 download

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

Page 1: POO - Aula 13 - Classe Abstrata e Interface

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

Page 2: POO - Aula 13 - Classe Abstrata e Interface

2

Recapitulando

103403 – Programação Orientada a Objetos

Page 3: POO - Aula 13 - Classe Abstrata e Interface

3103403 – Programação Orientada a Objetos

Sumário

➢ Classe Abstrata; e

➢ Interface.

Page 4: POO - Aula 13 - 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..

Page 5: POO - Aula 13 - Classe Abstrata e Interface

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.

Page 6: POO - Aula 13 - Classe Abstrata e Interface

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.

Page 7: POO - Aula 13 - Classe Abstrata e Interface

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.

Page 8: POO - Aula 13 - Classe Abstrata e Interface

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.

Page 9: POO - Aula 13 - Classe Abstrata e Interface

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.

Page 10: POO - Aula 13 - Classe Abstrata e 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.

Page 11: POO - Aula 13 - Classe Abstrata e Interface

11

Referências

103403 – Programação Orientada a Objetos

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

➢ Material da Caelum.