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

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

Linguagem de Programação II

Apresentações semelhantes


Apresentação em tema: "Linguagem de Programação II"— Transcrição da apresentação:

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

2 Sumário Polimorfismo Exercícios; Prof.: Sergio Pacheco 2 2

3 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; Prof.: Sergio Pacheco 3 3

4 Polimorfismo É 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. Prof.: Sergio Pacheco 4 4

5 Polimorfismo 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. Prof.: Sergio Pacheco 5 5

6 Polimorfismo Prof.: Sergio Pacheco 6 6

7 Classes Abstratas 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); Prof.: Sergio Pacheco 7 7

8 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. Prof.: Sergio Pacheco 8 8

9 Polimorfismo Prof.: Sergio Pacheco 9 9

10 Polimorfismo Prof.: Sergio Pacheco 10 10

11 Polimorfismo Prof.: Sergio Pacheco 11 11

12 Sobrecarga de métodos 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; Prof.: Sergio Pacheco 12 12

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

14 Polimorfismo - Exercício
Implemente, em Java, uma classe abstrata de nome Quadrilatero onde são declarados dois métodos abstratos: float calcularArea(); float calcularPerimetro(); 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. Prof.: Sergio Pacheco 14 14

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


Carregar ppt "Linguagem de Programação II"

Apresentações semelhantes


Anúncios Google