A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Prof.: Sergio Pacheco Linguagem de Programação II Prof.: Sergio Pacheco 1.

Apresentações semelhantes


Apresentação em tema: "Prof.: Sergio Pacheco Linguagem de Programação II Prof.: Sergio Pacheco 1."— Transcrição da apresentação:

1 Prof.: Sergio Pacheco Linguagem de Programação II Prof.: Sergio Pacheco 1

2 Sumário 2 Polimorfismo Exercícios;

3 Prof.: Sergio Pacheco Polimorfismo A palavra polimorfismo significa assumir várias Formas. O polimorfismo permite escrever programas que processam objetos que compartilham a mesma superclasse em uma hierarquia de classes como se todas fossem objetos da superclasse; 3

4 Prof.: Sergio Pacheco Polimorfismo 4 É uma das características mais potentes da orientação a objetos. Polimorfismo é o princípio pelo quais duas ou mais classes derivadas de uma mesma superclasse podem invocar métodos que têm a mesma identificação (assinatura), mas comportamentos distintos, especializados para cada classe derivada. O polimorfismo, na OOP, é a habilidade que os objetos, distintos, mas relacionados, possuem, de receber um estimulo (um método, ou comando) e agir (responder) de maneira diferente a esse estímulo. Por exemplo, podemos ter uma classe, abstract, de mamíferos com o método comunicar. Esse método pode ser implementado de formas diferentes para subclasses herdades de mamíferos, como: Humanos, Cães e Gatos.

5 Prof.: Sergio Pacheco Polimorfismo 5 Para que o polimorfismo possa ser utilizado, é necessário que os métodos que estejam sendo definidos nas classes derivadas tenham exatamente a mesma assinatura do método definido na superclasse; nesse caso, está sendo utilizado o mecanismo de redefinição de métodos (overriding). Esse mecanismo de redefinição é muito diferente do mecanismo de sobrecarga de métodos,onde as listas de argumentos são diferentes.

6 Prof.: Sergio Pacheco Polimorfismo 6

7 Classes Abstratas 7 Uma classe abstrata normalmente contém um ou mais métodos abstratos; Um método abstrato é um com a palavra-chave abstract na sua declaração, como em: Métodos abstratos não fornecem implementações. public abstract float calcularArea(); Uma classe que contém métodos abstratos deve ser declarada como classe abstrata mesmo que contenha métodos concretos (não abstratos);

8 Prof.: Sergio Pacheco Polimorfismo - Métodos Abstratos Uso de métodos abstratos: Apesar de métodos da classe Veículo terem sido definidos, estes nunca são invocados nesse exemplo. (Se fossem, algo estaria errado.) Isso ilustra uma situação onde métodos abstratos poderiam ser utilizados, pois a definição do corpo desses métodos é de fato irrelevante. Ainda mais, se uma classe como essa só contém métodos abstratos, ela poderia ser implementada como uma interface Java. 8

9 Prof.: Sergio Pacheco Polimorfismo 9

10 Polimorfismo 10

11 Prof.: Sergio Pacheco Polimorfismo 11

12 Prof.: Sergio Pacheco Sobrecarga de métodos 12 Quando sobrecarregamos um método, devemos manter a semântica: Não é um bom projeto termos um método sobrecarregado cujas versões fazem coisas completamente diferentes. A classe Math possui vários métodos sobrecarregados. Note que a semântica das várias versões são compatíveis. int a = Math.abs(-10); // a = 10; double b = Math.abs(-2.3); // b = 2.3;

13 Prof.: Sergio Pacheco Sobrecarga de métodos 13 Sobrecarregar (overloading) um método significa definir vários métodos com o mesmo nome, mas com diferentes parâmetros.

14 Prof.: Sergio Pacheco Polimorfismo - Exercício 14 1.Implemente, em Java, uma classe abstrata de nome Quadrilatero onde são declarados dois métodos abstratos: float calcularArea(); float calcularPerimetro(); 2.Crie, como subclasse de Quadrilatero, uma classe de nome Retangulo e Quadrado cujas instâncias são caracterizadas pelos atributos lado e altura ambos do tipo float. Implemente nas classes a cima os métodos herdados de Quadrilatero e outros que ache necessários.

15 Prof.: Sergio Pacheco 15 ( Bom final de semana e até semana que vem !!! Deus abençoe a todos.


Carregar ppt "Prof.: Sergio Pacheco Linguagem de Programação II Prof.: Sergio Pacheco 1."

Apresentações semelhantes


Anúncios Google