Programação Java (nível intermediário) 4. Polimorfismo

Documentos relacionados
AULA 8 Polimorfismo de: coerção, overloading, inclusão e paramétrico Prof. Dr. Fernando Henrique Campos

Lista 05 Herança. public class PessoaFisica extends Pessoa { private String RG; public PessoaFisica(){ super(); } public String getrg(){ return RG; }

Universidade da Beira Interior Cursos: Engenharia Informática, Matemática /Informática e Ensino da Informática

Programação OO em Java. Profa Andréa Schwertner Charão DELC/CT/UFSM

Unidade: Classes Abstratas, Polimorfismo, Sobreposição e Interfaces

Conceitos de Orientação a Objetos

Programação OO em Java. Profa Andréa Schwertner Charão DLSC/CT/UFSM

Programação Java. - Herança e Polimorfismo - Marco Fagundes Marco Fagundes -

Linguagem de Programação Orientada a Objeto Polimorfismo, Classes Abstractas e Interfaces

Programação por Objectos. Java

Java para Desktop. Programação Orientada à Objetos 2 JSE

9 Classes Abstractas e Interfaces

Conceitos Básicos da Programação OO

Programação. Orientada a Objetos: Herança. Objetos. Relacionamento entre classes. Análise e Projeto Orientados a. Objetos

Linguagem de Programação. Diagrama de classes

Polimorfismo e Ligação Dinâmica. Alcides Pamplona Polimorfismo e Ligação Dinâmica

Linguagem de Programação Orientada a Objeto Construtores e Sobrecarga

Vejamos o seguinte exemplo public class Exemplo private int testada = 20; public void testapalavra(int testada) JOptionPane.showMessageDialog(null,"Pa

Computação II - Java - Teste 1.2 Prof. Adriano Joaquim de Oliveira Cruz 2015/04/27

Sobreposição de Métodos

Introdução à orientação a objetos. João Tito Almeida Vianna 18/05/2013

Laboratório de Programação. Aula 2 Java 5COP088. Aula 2 Java Prof. Dr. Sylvio Barbon Junior. Sylvio Barbon Jr

Linguagem de Programação Orientada a Objeto Abstração - Encapsulamento

Interfaces. Universidade Católica de Pernambuco Ciência da Computação. Prof. Márcio Bueno.

Orientação a Objetos Parte I. Introdução a POO (Programação Orientada a Objetos)

Tema da aula Introdução ao paradigma de programação: Orientado a Objetos

extendsé usado para indicar herança em JAVA

Laboratório de programação II

Encapsulamento e Métodos (Construtores e Estáticos) João Paulo Q. dos Santos

PCS3111. Laboratório de Programação Orientada a Objetos para Engenharia Elétrica. Aula 6: Polimorfismo

Classes e Objetos em Java. Algoritmos e Programação I. Classes. Classes. Modificadores de Acesso. Classes. Revisão

Aula 2 Princípios Básicos da Orientação a Objetos (Parte II)

Introdução. Programação Orientada a Objetos (POO) João Paulo Q. dos Santos

Herança Tiago Eugenio de Melo

Programação Orientada a Objetos em Java

Programação Orientada a Objetos. SANTOS, Rafael (PLT) e Guia de Estudo SCJP. SIERRA, Kathy e BATES, Bert

Polimorfismo: aprendendo a prever o futuro. Polimorfismo: aprendendo a prever o futuro. Definições (2/5) Definições Tipos de Polimorfismo

Lição 11 Herança, polimorfismo e interfaces

AULA 16 HERANÇA. Disciplina: Programação Orientada a Objetos Professora: Alba Lopes

INF1337 LINGUAGEM DE PROGRAMAÇÃO ORIENTADA A OBJETOS

Orientação a Objetos e Java

Orientação a Objetos (OO) LPG II - Java. Orientação a Objetos (OO) Programação Orientada a Objetos. Programação Procedimental

Herança e Propriedades

Programação Orientada a Objetos

Linguagens de Programação Aula 12

Programação de Computadores - I. Profª Beatriz Profº Israel

AULA 02. OBJETIVO: Características da Linguagem Orientada a Objetos.

Programação Orientada a Objetos Flávio de Oliveira Silva 144

Vetores Unimensionais

Introdução a Programação Orientada a Objetos

Interfaces e Classes Abstratas

POO UML e Outros Conceitos. Prof. Vicente Paulo de Camargo

INF1636 PROGRAMAÇÃO ORIENTADA A OBJETOS

Herança. Herança. Herança. Herança. Herança. Programação Orientada a Objetos

Métodos e Procedimentos. Prof. Jesus José de Oliveira Neto

4 Conceito de Herança

Programação Orientada a Objetos

Herança e Polimorfismo - Parte II -

TÉCNICAS DE ORIENTAÇÃO A OBJETOS

Programação Orientada a Objetos. Prof. MsC Sílvio Bacalá Júnior

Unidade: sobrecarga, construtores e herança

Computação II Orientação a Objetos

Orientação a Objetos (OO) Java Avançado Revisão do Paradigma de. Orientação a Objetos (OO) Programação Orientada a Objetos. Programação Procedimental

Programação Orientada a Objetos Aula I Declaração de classes, métodos construtores. Prof.: Bruno E. G. Gomes IFRN

SEMINÁRIOS INTEGRADOS EM ADS PROGRAMAÇÃO ESTRUTURADA E ORIENTADA A OBJETOS

Entender o princípio do Polimorfismo; Conhecer Polimorfismo de Sobreposição e de Inclusão;

Programação com Objectos Teste Teórico 18 de Dezembro de 2008, 19:00 (120 minutos)

Universidade Estadual de Santa Cruz

Sobrecarga, Sobreposição e Polimorfismo

Atributos e Métodos Estáticos

Programação com Objectos. Processamento de Dados I. 2. Classes, Atributos e Métodos

Capítulo 2. Orientação a Objetos

Para entender o conceito de objetos em programação devemos fazer uma analogia com o mundo real:

Conceitos de Programação Orientada a Objetos

Auto-Referenciamento e Herança

OO - Orientação a Objetos

Curso teórico: Orientação a Objetos. Matemática computacional Marcos Aurelio Wozhiak Jr webzhiak.com.br

Linguagem de programação métodos/funções

Introdução. Atributos em Java. Atributos. Acesso à atributos em Java. Atributo versus variável. Atributos, métodos e encapsulamento.

TIC - Programação Visual

Classes e Objetos INTRODUÇÃO À ORIENTAÇÃO A OBJETOS COM JAVA - MÓDULO II. Classes. Objetos. Um modelo para a criação de objetos

Avançando em Java com

Declaração de Construtores em Java

Orientação a Objetos - Herança

Dados armazenados em um objeto podem ser tanto primitivos, tais como inteiros ou caracteres, ou referências para outros objetos.

5 Reuso de Classes. Desenvolvimento OO com Java. Vítor E. Silva Souza

Herança e Classes Abstratas. João Paulo Q. dos Santos

Orientação a Objetos Básica

LEIC-A / MEIC-A 2007/2008 (1º

Programação Orientada a Objetos 2 Flávio de Oliveira Silva, M.Sc.

Programação Orientada a Objetos

Programação Java. Linguagem de Programação Java

Aprendendo. Java 2. Rodrigo Mello Ramon Chiara Renato Villela. Novatec Editora Ltda.

Herança e Polimorfismo -Parte II -

12/03/16. Generalização. Associação. Agregação UML Relações. entre Classes. Composição. Prof.Dr. Enzo Seraphim. Dependência

Programação Orientada a Objetos

Quando um programa viola as restrições semânticas da linguagem, a JVM assinala um erro ao programa, sob a forma de exceção.

p Imagine que um Sistema de Controle do Banco pode ser acessado, além dos Gerentes, pelos Diretores do Banco

Curso: Técnico em Informática Integrado Disciplina: POO Carga horária: 60h Período: 2º Ano Professor: Edmilson Barbalho Campos Neto LISTA 02.

Linguagens de Programação

Transcrição:

Programação Java (nível intermediário) 4 Polimorfismo

Introdução Uma linguagem orientada a objetos nos permite definir novos tipos para variáveis Nós definimos um novo tipo através de uma classe Este tipo tem encapsulado no seu interior um conjunto de características chamadas de atributos da classe

Introdução Sobre os atributos de uma classe é possível realizar um conjunto de operações chamadas de métodos Métodos Atributos

Introdução Quando eu crio uma variável do tipo de uma classe eu estou criando uma instância daquela classe É o mesmo que dizer que eu criei um objeto do tipo daquela classe Como o próprio nome diz, a classe classifica um conjunto de objetos com propriedades Ex: a classe das pessoas, que possui as propriedade: peso, altura, idade

Introdução CLASSE Pessoa ATRIBUTOS peso: Real; altura: Real; idade: Inteiro; METODOS andar(passos:inteiro): vazio falar(frase:string):vazio pular(metros:real):vazio Fim_Classe_Pessoa

Introdução Através da classe Pessoa é possível definir todas as pessoas do mundo

Revisão - Herança Em orientação a objetos esse conceito define a habilidade uma nova classe adquirir as propriedade de uma classe que já existia Desde modo, a nova classe herda os atributos e métodos da classe ancestral Por exemplo, sendo o aluno uma pessoa, nós podemos determinar que uma nova classe chamada aluno, que herda de Pessoa todas as suas propriedades

Revisão - Herança Ex 2: Pessoa + nome: String + matricula: int + idade: int + altura: float Aluno + nome: String + matricula: String + nota1: float + nota2: float Professor + nome: String + matricula: String + turmas: int + Aluno( ): + Professor( ):

Polimorfismo Formalmente polimorfismo quer dizer várias formas. Em OO, denota uma situação na qual um objeto pode se comportar de maneiras diferentes ao receber uma mensagem O poliformismo é alcançado com auxílio do uso de herança nas classes e a reescrita (overriding) de métodos das superclasses nas suas subclasses

Polimorfismo Superclasse define uma classe pai (ancestral), uma classe de quem se herda Já subclasse define o conjunto de classes que herdam de uma superclasse Duas subclasses de uma mesma classe podem ter implementações completamente diferentes de um mesmo método, daí surge o polimorfismo

Polimorfismo Exemplo 3: Podemos imaginar um programa que faça a impressão de um relatório, por meio de uma classe chamada Impressora Uma impressora a laser tem um mecanismo de impressão totalmente diferente de uma impressora a jato de tinta, mas isso não importa para o programa Ele manda uma simples mensagem de imprimir para a impressora, e o modo como a impressora imprime no papel varia de acordo com o tipo de impressora usada

Polimorfismo Diagrama de classes Relatório Impressora + atr1: String + atr2: int Laser + nome: String Jato de Tinta + Aluno( ): + Professor( ):

Polimorfismo por Overriding O overriding (sobreposição) ocorre quando um método de uma superclasse é sobrescrito por um método de mesmo nome de uma subclasse O método na subclasse tem o mesmo nome, assinatura e parâmetros Na compilação, o método da subclasse irá sobrepor o método da superclasse

Polimorfismo por Overriding Exemplo:

Polimorfismo por Overloading O overloading (sobrecarregamento) ocorre quando mais de um método com o mesmo nome é implementado Overloading pode se dar apenas pela diferenciação dos argumentos do método Durante a compilação, o Java irá determinar qual dos métodos será chamado Isso depende do escopo de sua chamada

Polimorfismo por Overloading Exemplo:

Palavras de Polimorfismo A palavra this permite separar explicitamente atributos de parâmetros de um método Mas ela também permite separar métodos sobrecarregados dos não sobrecarregados Quando aplicamos this a um método explicitamente definimos que o método chamado é o da subclasse

Palavras de Polimorfismo Ex: class Pessoa{ String nome; int passos; int idade; public int andar(){ passos =10; } }

Palavras de Polimorfismo Ex: class Aluno{ String nome; int passos; int idade; public int andar(){ passos =20; return passos } public static void main(string args[ ]){ this.andar(); } }

Palavras de Polimorfismo No caminho contrario, a palavra super ao ser aplicada a um metodo define que o metodo chamado é o da superclasse Ex: public static void main(string args[ ]){ } super.andar();