Polimorfismo.

Slides:



Advertisements
Apresentações semelhantes
|Introdução a Java para programadores Telis. Jogo de Dados simples O jogo é jogado por dois jogadores. Cada jogador faz sua jogada (lança um dado), e.
Advertisements

JAVA Orientação a Objetos
Programação orientada a objetos
Classes Abstratas e Interfaces
Modificadores Marco Antonio, Arquiteto de Software – TJDF Atualizado em Novembro/2008.
Modificadores Marco Antonio. Introdução Em todas as linguagens de programação o acesso a classes/métodos deve seguir algumas regras.
Herança, Polimorfismo e Classes Abstratas em Java
Java – Classes Abstratas
Projeto de Sistemas de Software Trabalho de Padrões de Projeto
Orientação a Objetos: Modificador Final para Métodos e Classes
1 Orientação a Objetos: Herança Alcides Calsavara.
Herança, sobrecarga e ligação dinâmica zHerança zReferência super zSobrecarga de métodos zSobreposição zLigação dinâmica de métodos zfinal.
De 17 1 Linguagens de Programação Orientadas a Objetos Pós-Gradução(Lato-Sensu) em Sistemas de Banco de Dados - UFPa Marco Fagundes Aula.
Generalização, Especialização e Conceitos
Orientação a Objetos Introdução. Objetos: o que são? Olhando o mundo real pode-se ver vários objetos: mesa, cadeiras, alunos, professores etc. Esses objetos.
Iniciação ao Java – Márcio F. Campos
Polimorfismo e Classes Abstratas Profa
Wagner Santos C. de Jesus
Membros estáticos.
JAVA ENUMS © 2009 by Jorge L. de Souza Leão março de 2009 PEE - COPPE/UFRJ.
Herança e Polimorfismo
Concorrência em Java Threads em Java.
Tipos Agregados Homogêneos e Listas
Programação Orientada a Objetos com Java
JAVA Linguagem Ambiente de Desenvolvimento
METODOLOGIA PARA DESENVOLVIMENTO DE SISTEMAS Prof. Dr. rer. nat. Daniel D. Abdala 1.
Interfaces.
Linguagem de Programação II Carlos Oberdan Rolim Ciência da Computação Sistemas de Informação.
Atributos, Encapsulamento e Interface em Java
Linguagem técnica de programação I Java
Capítulo 1. static import  A importação estática pode ser utilizado quando queremos acessar métodos ou atributos estáticos de uma outra classe.  Através.
Professora Lucélia Oliveira
UTFPR – Campus Curitiba - DAELN Cursos de Eng. Eletrônica/Eng. da Computação IF62C - Fundamentos de Programação Semana 12 – Overloading X Overriding Prof.a.
POO - I Prof.: Jean Carlo Mendes
Wagner Santos C. de Jesus
UTFPR – Campus Curitiba - DAELN Cursos de Eng. Eletrônica/Eng
Programação Orientada a Objetos - Java
Implementação Orientada a Objetos – Aula 03
Programação Orientada a Objetos - Java Professor: Jean Carlo Mendes.
UTFPR – Campus Curitiba - DAELN Cursos de Eng. Eletrônica/Eng
Prof. Gilberto Irajá Müller
Introdução às Java Threads
Orientação a Objetos usando Java
Orientação a Objetos e Java Graduação em Ciência da Computação  Centro de Informática, UFPE Alexandre Mota
Java Kickstart, day 2 Semelhanças com linguagem C.
Classes Abstratas P. O. O. Prof. Ângela e Grace.
Implementação Orientada a Objetos – Aula 05 Construtores e sobrecarga de métodos Prof. Danielle Martin Universidade de Mogi das Cruzes
Funções Matemáticas e de String
Interfaces POO Avançado.
Classes Abstratas e Interface
Aula Prática 1 Monitoria IP/CC (~if669). Roteiro 1.Polimorfismo 2.Superclasses Abstratas 3.Dúvidas 4.Exercício.
M ÉTODOS DA C LASSE S TRING. FUNÇÕES COM STRING Uma string é um tipo texto que corresponde à união de um conjunto de caracteres. Em Java, as strings são.
Implementação Orientada a Objetos – Aula 06 Conversão de tipos e métodos estáticos Prof. Danielle Martin Universidade de Mogi das Cruzes
Herança e Arquitetura em camadas
Aula Prática 5 05/05/2010. //Estrutura do método public int subtrair (int a, int b){ //Calcule a operação desejada. int resultado = a – b; //Retorne o.
Certificação Marco Antonio. Introdução A compreensão desse capítulo é muito importante pois trata de um assunto essencial em qualquer linguagem de programação,
Programação II Prof. Mateus Raeder Universidade do Vale do Rio dos Sinos - São Leopoldo -
Herança Modelagem e Programação Orientada a Objetos
Exercícios Laboratório. Inicio Escreva (“Olá Mundo!”) Fim static void main (string[] args) { Console.WriteLine (“Olá Mundo!”); }
Programação II Prof. Mateus Raeder Universidade do Vale do Rio dos Sinos - São Leopoldo -
Copyright 1998, Departamento de Informática da UFPE. Todos os direitos reservados sob a legislação em vigor. Variáveis e métodos estáticos, Passagem de.
Bruno Inojosa MCP .NET Framework
Herança.
Classes abstratas São classes das quais não se pode instanciar objetos. São classes das quais não se pode instanciar objetos. Seu objetivo é ser herdada.
Universidade do Vale do Rio dos Sinos - São Leopoldo -
Laboratório de Programação II Método main Dados e Métodos de Classes.
Prof.: Bruno Rafael de Oliveira Rodrigues. Herança Possibilita a uma classe usar campos ou métodos definidos em outra classe. Assim a classe pai possui.
Implementação Orientada a Objetos – Aula 08 Herança, sobrescrita de métodos e polimorfismo Prof. Danielle Martin Universidade de Mogi das Cruzes
1. 2 Programação Orientada a Objetos Prof. Maurício Rodrigues de Morais
Classes Abstratas e Interface. 2 Classe Abstrata  Uma classe abstrata serve apenas como modelo para uma classe concreta (classe que comumente usamos);
Transcrição da apresentação:

Polimorfismo

Objetivos Conceito de polimorfismo Métodos sobrescritos (override) Classes abstratas Métodos abstratos

Termo que caracteriza várias formas Polimorfismo Termo que caracteriza várias formas

Polimorfismo Princípio pelo qual, a partir de uma subclasse, criam-se (instanciam-se) objetos utilizando referências do tipo de uma superclasse.

Uso do Polimorfismo Sobrescrita de métodos (override) Métodos declarados na superclasse sendo redefinidos na subclasse com a mesma assinatura. Alterar o comportamento do método em uma subclasse.

Exemplo Superclasse Desenho Subclasses Quadrado e Triangulo. Quadrado e Triangulo são especializações da classe Desenho.

public class Desenho { public void imprime () { System. out public class Desenho { public void imprime () { System.out.println("Figura não especificada"); }

public class Triangulo extends Desenho { public void imprime () { System.out.println("imprimindo triangulo"); }

public class Quadrado extends Desenho { public void imprime () { System.out.println("imprimindo quadrado"); }

public class Main { public static void main(String[] args) { int i; Desenho AR[ ] = new Desenho[6]; AR[0] = new Desenho(); AR[1] = new Triangulo(); AR[2] = new Quadrado(); AR[3] = new Quadrado(); AR[4] = new Triangulo(); AR[5] = new Triangulo(); for (i=0; i<6; i++){ AR[i].imprime(); }

Classes Abstratas Característica principal: a partir dela não poderá ser feito nenhum tipo de instância. Têm em sua declaração um ou mais métodos abstratos.

Declaração de classes abstratas Uso da palavra reservada abstract

Declaração de classes abstratas public abstract class Produto

Métodos abstratos Não tem corpo ou implementação e só pode estar numa classe abstrata. A classe que estende a classe abstrata é responsável em fazer a implementação dos métodos.

Declaração de métodos abstratos abstract <tipo de retorno> <identificador>;

Exemplo Criar a superclasse abstrata Funcionario com os atributos nome e email. Criar o método construtor com parâmetros e o método abstrato imprime. Criar a subclasse Medico com os atributos especialidade e CRM. Elaborar o método construtor com parâmetros e implementar o método abstrato imprime.

Criar a subclasse Administrador com os atributos departamento e numero de funcionarios. Elaborar o método construtor com parâmetros e Implementar o método abstrato imprime. Criar o aplicativo TesteFuncionario. Instanciar o objeto Medico e o objeto Administrador. Chamar o método imprime para cada objeto.

public abstract class Funcionario { protected String Nome, email; public Funcionario(String Nome, String email) { this.Nome=Nome; this.email=email; } abstract void imprime();

public class Medico extends Funcionario { private int CRM; private String esp; public Medico (String n, String e, int CRM, String esp) { super (n, e); this.CRM = CRM; this.esp = esp; } public void imprime(){ System.out.println("Medico"); System.out.println("Nome: " + Nome); System.out.println("Email: " + email); System.out.println("CRM " + CRM); System.out.println("Especialidade: " + esp);

public class Administrador extends Funcionario { private int numero; private String depto; public Administrador (String n, String e, int numero, String depto) { super (n, e); this.numero = numero; this.depto = depto; } public void imprime() { System.out.println("Administrador"); System.out.println("Nome: " + Nome); System.out.println("Email: " + email); System.out.println("Numero de funcionarios " + numero); System.out.println("Departamento: " + depto);

public class Main { public static void main(String[] args) { Medico Med1= new Medico("Plinio", "pl@gmail", 1234, "Oftalmo"); Administrador Adm1 = new Administrador("Maria", "mari@hotmail", 10, "Financas"); Med1.imprime(); Adm1.imprime(); }

Exercício Criar a superclasse abstrata Funcionario com os atributos protegidos nome e salario. Criar métodos set e get para nome e salário. Declarar o método método abstrato reajuste. Criar a subclasse Vendedor com os atributos regiao e comissao. Criar os métodos set e get para região e comissão. Implementar o método abstrato reajuste acrescentando 10% ao valor do salario.

Criar a subclasse Secretaria com os atributos idioma e departamento Criar a subclasse Secretaria com os atributos idioma e departamento. Criar os métodos set e get para idioma e departamento. Implementar o método abstrato reajuste acrescentando 15% ao valor do salario. Criar o aplicativo TesteFuncionario para inicializar os atributos, chamar os métodos reajuste e imprimir.

Exercicio 2 Criar a superclasse Conta com o atributo privado saldo. Elaborar um método construtor com parâmetros. Definir um método debito que debite o saldo. Definir um método credito que credite o saldo. Criar o método get para o saldo.

Criar a subclasse ContaEspecial com o atributo privado limite Criar a subclasse ContaEspecial com o atributo privado limite. Elaborar um método construtor com parâmetros. Redefinir o método debito: se o saldo retornado pelo método get for maior que 0 debitar o valor senão debitar o limite. Redefinir o método getSaldo retornando o valor do saldo + o limite.

Criar a subclasse Poupança com o atributo privado juros Criar a subclasse Poupança com o atributo privado juros. Elaborar um método construtor com parâmetros. Redefinir o método credito da seguinte forma: O valorCredito = (getsaldo * juros ) + valor Chamar o método credito da superclasse para alterar o atributo.

Criar o aplicativo TesteContas Criar o aplicativo TesteContas. Instanciar uma conta poupança e uma conta especial inicializando com o método construtor com passagem de parâmetros. Definir um valor para o debito e para o credito das duas contas. Imprimir o saldo das duas contas.