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

Documentos relacionados
Classe Abstrata e Interface

Programação Orientada a Objetos II

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

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

Programação Java. Marco Fagundes. - Herança, Classes Abstratas e Interfaces Marco Fagundes -

Linguagem de Programação III

POO29004 Programação Orientada a Objetos

UNIVERSIDADE FEDERAL DE MATO GROSSO DO SUL SISTEMAS DE INFORMAÇÃO - CÂMPUS DE COXIM FUNDAMENTOS EM ORIENTAÇÃO A OBJETOS

Programação Orientada a Objetos. Vagner Luz do Carmo - Vluzrmos

Computação II Orientação a Objetos

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

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

Introdução a classes e objetos. Prof. Marcelo Roberto Zorzan

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

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

Programação Orientada a Objetos. Professor: André Luis Meneses Silva br.geocities.com/programacao2ufs

Orientação a Objetos - Herança

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

LÓGICA DE PROGRAMAÇÃO (JAVA) HERANÇA. Professor Carlos Muniz

POO29004 Programação Orientada a Objetos

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

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

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

Herança e Polimorfismo

Programação Orientada a Objetos

INF1636 PROGRAMAÇÃO ORIENTADA A OBJETOS

Ex: carro_desportivo poderá ser uma subclasse de automóvel (carro_desportivo é_um automóvel)

Classes e Objetos. Sintaxe de classe em Java

9 Classes Abstractas e Interfaces

Herança. Prof. Fernando V. Paulovich 23 de agosto de 2010

Programação Orientada a Objetos II

POO29004 Programação Orientada a Objetos

Programação por Objectos. Java


Linguagem de Programação II Herança

Introdução à Programação. Encapsulamento e Herança

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

Orientação a Objetos AULA 06

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

Polimorfismo. O que é polimorfismo?

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

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

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

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

Programação Orientada a Objectos - P. Prata, P. Fazendeiro

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

Professor Leonardo Cabral da Rocha Soares Lattes:

Programação Orientada a Objectos - P. Prata, P. Fazendeiro

Avançando em Java com Polimorfismo. Prof.: Hugo Barros

Conceitos de Programação Orientada a Objetos

Programação Orientada a Objetos

Programação I Curso: Sistemas de Informação. Prof.: José Ronaldo Leles Júnior .:

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

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

Linguagem de programação Programação Orientada a objetos

Programação por Objectos. Java

Notas de Aula 04: Herança e polimorfismo.

Linguagens de Programação Aula 12

Introdução. Extends e Super. Exercício Prático 5 Herança. Nome:

Universidade Federal de Uberlândia

Herança e Polimorfismo

Programação Orientada a Objectos - P. Prata, P. Fazendeiro

Java First-Tier: Aplicações. Sobrecarga. Orientação a Objetos em Java (II) Sobrecarga de Construtores: Exemplo de Declaração

UNIDADE 5 Aplicação dos Conceitos de Orientação a Objetos

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

Notas de Aula 05: Diretivas de atributos, métodos e classes e o uso de Interfaces.

Herança. Fátima L. S. Nunes Luciano A. Digiampietri Norton T. Roman SISTEMAS DE INFORMAÇÃO 1

Programação Orientada a Objetos SANTOS, Rafael

Interfaces. Classes abstratas que possuem apenas métodos abstratos. Na Interface: Métodos são implicitamente. Campos são implicitamente

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

Interfaces POO. Prof. Marcio Delamaro

Herança e Polimorfismo - Parte II -

TÉCNICAS DE ORIENTAÇÃO A OBJETOS

package heranca; class Mamifero { public int a; protected int b; int c; private int d;

Herança e Propriedades

Java First-Tier: Aplicações. Herança: Simples Múltipla. Orientação a Objetos em Java (III) Problemas de Herança Múltipla.

[Linguagem de Programação 3] [Aula 01] [Gustavo Yoshio Maruyama]

Avançando em Java com

A B Classe Genérica D A C. Classe Especializada. Classe Especializada. Características Herdadas

Linguagem de Programação IV Introdução

Computação II Orientação a Objetos

Estruturas. Programação I Cap. 4 - Estruturas. Exemplos de estruturas. Estruturas em Java. Tipos x instâncias. Criando instâncias de estruturas

Desenvolvimento Web TCC Turma A-1

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

Herança Tiago Eugenio de Melo

Herança; Sobrescrita, Sobrecarga e Polimorfismo; Classes abstratas e concretas (finais).

Programação Orientada a Objetos

AULA TEÓRICA 9. Tema 8. Herança (continuação) Ø Sobreposição de métodos. Ø Variáveis e métodos estáticos. Ø Hierarquia de classes.

Programação Orientada a Objeto (POO)

Unidade: sobrecarga, construtores e herança

Interfaces e Classes Internas

Programação Orientada a Objetos com Java. Prof. Júlio Machado

Polimorfismo. PARTE II: Java e OO. Polimorfismo. Polimorfismo. Polimorfismo. Polimorfismo

Linguagem de Programação II Programação Orientada a Objetos. Orientação a Objetos

Ficha Prática 10. António Nestor Ribeiro, Paulo Azevedo, Mário Martins PPIV (LESI) 2005/06

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

Especificam quem tem acesso a cada entidade, isto é, quem tem acesso a. cada classe e cada membro da classe (dados e métodos)

Transcrição:

Palavra reservada this Em Java podemos ter um parâmetro de um método e um atributo de uma classe com o mesmo nome. Caso façamos uma referência a esta variável, pelo princípio da localidade estaremos referenciando aquela variável cuja declaração estiver mais próxima, no caso o parâmetro. Caso desejemos referenciar o atributo da classe e não o parâmetro devemos usar a palavra reservada this antes do nome da variável..

Vejamos o seguinte exemplo public class Exemplo private int testada = 20; public void testapalavra(int testada) JOptionPane.showMessageDialog(null,"Parametro = "+testada+" Atributo = "+this.testada); public static void main(string args[]) Exemplo algum = new Exemplo(); algum.testapalavra(8);

Herança - continuação Vimos anteriormente que o nivel de protecao de atributos e metodos pode ser public, protectec e private e que componentes declarados como private nao podem ser acessados por suas subclasses. Uma forma de contornar isto e criar metodos set e get publicos de forma que a subclasse possa acessar estes atributos atraves dos metodos. Classes abstratas, como visto anteriormente sao classes que nao podem ser instanciadas, cuja finalidade e agrupar caracteristicas que devem ser herdadas por outras classes. Metodos declarados como abstratos por sua vez nao fornecem implementacoes, estes metodos deverao obrigatoriamente ser implementados nas subclasses.

Herança - continuação O Java ao contrário de C++ não suporta herança múltipla; Toda classe herda da classe object. Uma classe pode herdar de qualquer classe desde que ela não tenha o modificador final. Polimorfismo permite programar no geral em vez de programar no especifico. Polimorfismo permite escrever programas que processem objetos que compartilham a mesma superclasse em uma hierarquia de classes como se todas fossem objetos da superclasse. Já vimos como implementar polimorfismo por overloading (sobrecarga). Vejamos agora como implementar polimorfismo por override.

Polimorfismo por override Um método de uma subclasse pode reescrever um método da superclasse de forma que ele atenda melhor suas necessidades. Para isto o método da subclasse deve ter a mesma assinatura do método da superclasse. Os modificadores de acesso não precisam ser os mesmos entretanto o método da subclasse deve ter o modificador de acesso igual ou menos restritivo que o modificador de acesso do método original. Vejamos o seguinte exemplo:

public class SuperClasse void mostra(int y) System.out.println("da superclasse: "+y); public class SubClasse extends SuperClasse public void mostra(int y) System.out.println("da subclasse: "+y); public static void main(string args[]) SuperClasse objsuper = new SuperClasse(); SubClasse objsub = new SubClasse(); objsuper.mostra(10); objsub.mostra(10);

Polimorfismo por override Podemos observar a materialização do conceito é um entre objetos de subclasse e de superclasse no fato de que onde é esperado um objeto de uma classe pode ser recebido um objeto de sua subclasse. Vejamos o seguinte exemplo:

public class SuperClasse void mostra(int y) System.out.println("da superclasse: "+y); public class SubClasse extends SuperClasse public void mostra(int y) System.out.println("da subclasse: "+y); public static void main(string args[]) SuperClasse objsuper = new SuperClasse(); SubClasse objsub = new SubClasse(); objsuper.mostra(10); objsub.mostra(10); SuperClasse obj2super = objsub; System.out.println("Método do objeto da subclasse atribuído ao obj da superclasse."); obj2super.mostra(10);

Polimorfismo por override Na tabela acima podemos ver resumidamente os modificadores de acesso e os direitos que cada um deles dão.

Exercicio As classes a seguir tem o objetivo de representar circulos e quadrados na tela.

Esta classe declara uma lista de figuras que na verdade e formada por um vetor de circulos e um vetor de quadrados

Classe que testa a lista de figuras

Exercicio Usando heranca refaca a classe circulo e quadrado de forma que ambas herdem de uma classe chamada figura. Refaca a classe ListadeFiguras de forma que ela possua um unico vetor de figuras que na verdade podem armazenar tanto circulos quanto quadrados pois, uma vez que ambos herdam de figura, ambos sao considerados figuras.