Baixe o app para aproveitar ainda mais
Prévia do material em texto
USJT – 2015 – CP & SI – PPINT – Práticas de Programação Integrada Professores: Robson Calvetti, Sérgio Bonato, Hamilton Costa, Liliane Santana e Carlos Dutra. Aula: 04 Assunto: Polimorfismo, Sobrecarga e Sobreposição em Java. Conceitos Básicos abordados pelo Professor: Polimorfismo, Sobrecarga (Overload) e Sobreposição (Override). Exemplo A: Sobrecarga (Overload) Supondo a existência dos métodos abaixo, em uma classe "Teste": public int calcula(int x) { int y; y = x * x; return y; } public int calcula(int a, int b) { int c; c = a + b; return c; } A criação de um objeto de Teste e a posterior utilização do método em questão seria feita assim: Teste t = new Teste(); . . . int d,e; d = t.calcula(10); e = t.calcula(5,10); Verificar que “d” e “e” são resultados da execução de métodos diferentes. O que define qual método será utilizado é a assinatura de cada um deles. Notar que “d” será carregado com 100 e “e” será carregado com 15. Neste caso, diz-se que o método “calcula” sofreu SOBRECARGA. Exemplo B: Sobreposição (Override) A definição idêntica de métodos não é possível em uma mesma classe, somente em classes diferentes. Supondo a existência dos métodos abaixo, nas classes “Um” e “Dois”: public class Um { public int calc(int x) { return (x * x); } } public class Dois extends Um { public int calc(int x) { return (x + 5); } } No trecho abaixo, em uma outra classe: . . . Um d = new Um(); Dois e = new Dois(); int a,b; a = d.calc(10); b = e.calc(10); . . . Notar que “a” receberá o valor 100 e “b” receberá o valor 15. Neste caso, diz-se que houve SOBREPOSIÇÃO. Observação: - A sobrecarga e a sobreposição permitem o POLIMORFISMO. Atividade Prática 1: Dadas as classes “Pessoa”, “FuncionarioAposentado” e “Funcionario”, sabendo que existem os atributos “salario’, “salarioAposentadoria”, “nome”, “idade” e “cargo” e sabendo que o método “categoria”, dado abaixo, pertence à classe “Funcionario”, pede-se: a) Construa o Diagrama de Classes UML; b) Construa as classes em Java, lembrando de considerar construtores e incluir alguns métodos, implementando pelo menos um encapsulamento; c) Monte um programa de acesso; d) Modifique o código para quem seja implementado o Polimorfismo (Sobrecarga e Sobreposição). Dado o método “categoria”: public int categoria() { if( idade > 20) { return 30; } else { return 10; } } Atividade Prática 2: Dadas as classes Shape, TwoDimensionalShape, Circle, Square, Triangle, ThreeDimensionalShape, Sphere, Cube e Tetrahedron apresentadas no diagrama de classes abaixo, implementar o polimorfismo (Sobrecarga e Sobreposição) para o cálculo de área e perímetro (duas dimensões) e de volume e área total das faces (três dimensões), para entradas, cálculos e apresentações com medidas em números inteiros, apenas, e em ponto flutuante, distintamente: Criar a classe de teste, com a entrada e apresentação dos valores de todos os atributos envolvidos, respectivamente, via teclado e via monitor.
Compartilhar