Polimorfismo si facol

874 views

Published on

Esse slide tem o intu

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
874
On SlideShare
0
From Embeds
0
Number of Embeds
5
Actions
Shares
0
Downloads
47
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Polimorfismo si facol

  1. 1. Polimorfismo Alunos: Elaine Cristina (elaine.145@hotmail.com) José André (srhieth@hotmail.com) Edmar Medeiros (edmarcrazy@hotmail.com) Prof.: Douglas Daniel Del Frari (douglas.frari@gmail.com) Sistemas de Informação
  2. 2. O que significa polimorfismo? <ul><li>O termo polimorfismo origina-se do grego e quer dizer “o que possui várias formas”. </li></ul>
  3. 3. Em programação <ul><li>Está relacionado à possibilidade de usar o mesmo nome para métodos diferentes e à capacidade que o programa tem de discernir, dentre os métodos homônimos, aquele que deve ser executado. </li></ul>
  4. 4. <ul><li>De uma maneira geral ele permite a criação de programas mais claros, pois ele elimina a necessidade de darmos nomes diferentes para métodos que conceitualmente fazem a mesma coisa, e também programas mais flexíveis, pois facilita a extensão dos mesmos </li></ul>
  5. 5. Formas do Polimorfismo <ul><li>Polimorfismo Estático </li></ul><ul><li>Polimorfismo Dinâmico </li></ul>
  6. 6. Polimorfismo Estático <ul><li>Ocorre quando na definição de uma classe criamos métodos com o mesmo nome porém com argumento diferentes. Neste caso o método está sobrecarregado (Overloading). A decisão de qual método chamar é tomada em tempo de compilação, se baseando nos argumentos passados. </li></ul>
  7. 7. Exemplo <ul><li>Circulo (){ </li></ul><ul><li>Circulo(Ponto centro,Ponto extremidade) </li></ul><ul><li>raio= new Linha (centro,extremidade); </li></ul><ul><li>} </li></ul><ul><li>Circulo (double x, double y){ </li></ul><ul><li>raio= new Linha( new ponto (x,y)) </li></ul><ul><li>} </li></ul>
  8. 8. <ul><li>Todos esses métodos construtores possuem o mesmo nome mas devem ser diferidos entre si pelos parâmetros que recebem. </li></ul><ul><li>Exemplo: Quando em um programa fazemos </li></ul><ul><li>Circulo circulo= new circulo(linha) </li></ul>
  9. 9. <ul><li>O compilador decide em tempo de compilação qual método chamar,nesse caso, o método Circulo que recebe uma linha como parâmetro </li></ul>
  10. 10. Polimorfismo Dinâmico <ul><li>Está associado com o conceito de herança e ocorre quando uma subclasse redefine um método existente na superclasse. A decisão de qual método executar é tomada somente em tempo de execução. </li></ul>
  11. 11. Exemplo <ul><li>// análise seres vivos existentes na terra </li></ul><ul><li>Classe animal extends SerVivo{ </li></ul><ul><li>String forLocomocao; </li></ul><ul><li>String habitat; </li></ul><ul><li>Int tempoDeVida; </li></ul><ul><li>Public void locomover(){ </li></ul><ul><li>} </li></ul><ul><li>} </li></ul>
  12. 12. <ul><li>Como nem todo ser vivo se comporta da mesma forma é normal que ,quando novas classes são criadas, queiramos redefinir todos esses métodos na classe animal, por exemplo. </li></ul>
  13. 13. Exemplo <ul><li>Class Animal extends SerVivo{ </li></ul><ul><li>String formaLocomocao; </li></ul><ul><li>String habitat; </li></ul><ul><li>int tempoMedioVida; </li></ul><ul><li>public void locomover(){...} </li></ul><ul><li>public void nascer(){...} </li></ul><ul><li>public void alimentar{...} </li></ul><ul><li>} </li></ul>
  14. 14. Importante <ul><li>Os métodos na subclasse devem ser definidos com a mesma assinatura do método na superclasse, ou seja, mesmo nome, tipo de retorno etc. </li></ul>
  15. 15. Vantagem <ul><li>Mas a maior vantagem do polimorfismo dinâmico não é apenas a de permitir maior flexibilidade na modelagem das classes de objetos. </li></ul>
  16. 16. Exemplo <ul><li>SerVivo x; //declarada uma variável x do tipo SerVivo </li></ul><ul><li>Animal y= new Animal(); // cria um objeto do tipo animal </li></ul>

×