programação orientada à objetos

Post on 24-Feb-2016

29 Views

Category:

Documents

1 Downloads

Preview:

Click to see full reader

DESCRIPTION

Programação Orientada à Objetos. Aula 11 – Polimorfismo. Polimorfismo. ♦ Origem da palavra? O termo polimorfismo é originário do grego e significa “muitas formas”. Poli = muitas Morphos = formas. Polimorfismo – O que é?. - PowerPoint PPT Presentation

TRANSCRIPT

Programação Orientada à Objetos

Aula 11 – Polimorfismo

♦ Origem da palavra?

O termo polimorfismo é originário do grego e significa “muitas formas”.

Poli = muitasMorphos = formas

Polimorfismo

♦ A POO diz que Polimorfismo nada mais é que uma referência de uma classe abstrata a uma classe concreta, também é a capacidade de um operador executar a ação operada dependendo do tipo do operando.

♦ Em outras palavras, várias formas de fazer várias coisas.

Polimorfismo – O que é?

Polimorfismo – O que é?

Polimorfismo – O que é?

Polimorfismo – O que é?

Conceito chave de polimorfismo:

◦ Cada objeto sabe fazer a coisa certa em resposta à mesma chamada de método!

Polimorfismo

Projeto e implementação de sistemas que são facilmente extensíveis ◦ Novas classes podem ser adicionadas a partes gerais do

programa com pouca ou nenhuma modificação

◦ Através da utilização do Polimorfismo é possível trazer clareza ao código, diminuir linhas do mesmo e ainda é possível inserir aplicações flexíveis.

O que é necessário alterar no programa quando uma nova classe é gerada?

Vantagens do Polimorfismo

Resposta:◦ As partes do programa que exige conhecimento

direto das novas classes adicionadas

Vantagens do Polimorfismo

Para utilizar polimorfismo, os objetos devem executar as mesmas ações (métodos), mesmo que com comportamento diferente

Mais de Polimorfismo

OO oferece uma capacidade que exige que classes não relacionadas implementem um conjunto de métodos comuns?

Em outras palavras:◦ Há como forçar que a implementação de uma ação

comum a classes de objetos diferentes sejam implementadas nessas classes?

◦ Ex: mover para Macaco, Pássaro e Peixe

Mais de Polimorfismo

12

Formas de Polimorfismos Sobrescrita (overriding): mesma função

mas comportamentos diferentes.

Sobrecarga(overloading): nome de uma função usado mais de uma vez com diferentes tipos de parâmetros.Ex: operação soma com dois parâmetros reais e outra com parâmetros inteiros.

13

Sobrescrita (overriding) Recurso da linguagem onde uma impleemntação

específica é provida pela subclasse de algum método já provido pela superclasse.

A implementação da subclasse substitui a implementação da classe pai.

Métodos sobrescritos DEVEM possuir a mesma assinatura (tipo de retorno, nome do método, tipos e quantidade de parâmetros).

14

Sobrescrita (overriding)

15

Sobrescritas de função

Capacidade de um objeto responder comdiferentes comportamentos uma mesma solicitação

Exemplo:

Suponha um método que receba um objeto ContaEmBanco eque neste método seja solicitado a ativação do método Sacar.O comportamento do objeto vai ser diferente em função doobjeto real:

1 - ContaEspecial permite que o saldo fique negativo2 - ContaComum não

O comportamento do objeto será relativo aoobjeto real a qual é feita a referência

16

Sobrecarga(overloading) Em orientação a objetos, uma

sobrecarga refere-se aos métodos de uma classe, sendo que os mesmos podem ser sobrecarregados em relação aos seus nomes, podendo diversos métodos possuir o mesmo nome, porém a os tipos de dados da lista de parâmetros deve ser divergente, conforme pode ser observado na Figura 3.

17

Sobrecarga(overloading) No exemplo presente na Figura 3, pode-se observar a

repetição da declaração do método escreverNome(), porém nota-se também a diferenciação de seus parâmetros (ora sem parâmetros, ora um texto, ora um número).

Esta situação deixa clara a existência de comportamentos diferentes para um único serviço.

Esta diferenciação deve ser controlada na classe que implementa os métodos, podendo ainda o método invocado chamar outro método de mesmo nome (porém com lista de parâmetros diferente).

18

Sobrecarga de função

Atribui a um único operador a capacidade de agir dediferentes formas em função dos parâmetros recebidos

Exemplo:

Na classe ContaEmBanco, o método Depositar possuiduas implementações diferentes:

1 - uma para depósitos em dinheiro2 - outra para depósitos em cheque

O serviço escolhido depende do parâmetroenviado junto à ativação do serviço

(cheque ou dinheiro)

Sobrecarga de Construtores:• Podemos definir mais de que um

construtor seguindo as mesmas regras de sobrecarga de métodos.

• A partir do momento em que definimos um construtor diferente do default, o compilador não irá mais aceitar o construtor default.

Resumo (Sobrecarga x Sobreposição) Sobrecarga

Métodos com mesmo nome, mas assinaturas diferentes

Não necessita herança

Sobreposição (sobrescrita) Métodos com mesmo nome e assinatura Necessita de herança

21

Exercícios O que é polimorfismo em POO? Quais são seus

benefícios?

Qual a diferença entre herança e polimorfismo?

Qual a diferença entre sobrecarga e sobrescrita?

De exemplos práticos (reais) de aplicação de uma sobrecarga e de uma sobrescrita.

top related