Programação Orientada a Objetos. Herança

Documentos relacionados
1. HERANÇA: FILHO DE PEIXE, PEIXINHO É O QUE É HERANÇA? REFINANDO O CONCEITO DE HERANÇA ATRIBUTOS E MÉTODOS DA CLASSE

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

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

DCC / ICEx / UFMG. Membros de Classes. Eduardo Figueiredo.

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

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

final class UltimosDiasMeses{ static final int[] DIAS_DO_MES = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}; }

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

Linguagem de Programação. Diagrama de classes

9 Classes Abstractas e Interfaces

Fundamentos Básicos da linguagem Java (Programação Orientada a Objetos) Prof. Responsáveis Wagner Santos C. de Jesus

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

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

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

Programação Orientada a Objetos. Polimorfismo

Computação II Orientação a Objetos

nome = n; cargo = c; salario = s; public void print() { System.out.println(nome cargo salario); public void aumento( double fator){

Atributos e Métodos Estáticos

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

Programação Orientada a Objetos em Java

Recapitulando. Construtores: (Overload assinatura) public Circle() {...} public Circle(double x, double y, double r) {... }

Sabemos que a classe é responsável por definir a estrutura e o comportamento de seus objetos. Portanto, os objetos são instâncias das classes.

Herança e Propriedades

Linguagem de Programação II Herança

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

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

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

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

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

Polimorfismo. O que é polimorfismo?

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

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

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

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

Fundamentos de programação

Programação Orientada a Objetos SANTOS, Rafael

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

Análise e Projeto Orientados por Objetos

Paradigmas de Programação. Java First-Tier: Aplicações. Orientação a Objetos em Java (I) Nomenclatura. Paradigma OO. Nomenclatura

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

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

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

Programação Orientada por Objectos 2007/2008

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

Programação por Objectos. Java

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

Tópicos da Aula. Classes e Objetos. Classe Pública em Java. Classes em Java. Assinatura de Métodos. Corpo de Classes e Métodos. Conceitos de classe

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

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

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

Definição de Classes de Objetos. Introdução à Programação André L. Santos

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

Programação Orientada a Objetos II Java Décima primeira aula

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

Universidade Federal de Mato Grosso do Sul. Propriedades da Programação Orientada a Objetos

Programação aplicada de computadores Andréa Maria Pedrosa Valli

Aula 10 POO 1 Classes Abstratas. Profa. Elaine Faria UFU

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

Java Basico Parte II. Para obter um comportamento polimorco fazer: cada classe que os herda. Polimorsmo em Java. I Excepc~oes.

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

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

Programação Orientada a Objetos Relacionamentos entre classes

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.

Auto-Referenciamento e Herança

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

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

Como vimos anteriormente, subclasses podem redefinir (sobrepor) um método de sua superclasse.

Computação II Orientação a Objetos

Computação II - Java - Prova 1 Prof. Adriano Joaquim de Oliveira Cruz /05/13. Questão: Total Pontos: Gráu:

Herança e Polimorfismo

COMPORTAMENTOS - Observações

BCC221 Programação Orientada a Objetos. Prof. Marco Antonio M. Carvalho 2014/2

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

Paradigmas de Linguagens de Programação. Suporte para Programação Orientada a Objeto

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

Herança e Polimorfismo - Parte II -

Introdução à Programação Orientada por Objectos em Java. Enquadramento e Objectivos Abstracção Encapsulamento Herança Polimorfismo Conclusão

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

4 Conceito de Herança

Programação Orientada a Objectos - P. Prata, P. Fazendeiro. Hierarquia de classes e mecanismo de ligação

Interfaces e Classes Internas

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

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


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

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

Como exemplo, vamos criar uma subclasse da classe Funcionario, vista nos capítulos anteriores.

Programação Orientada por Objectos 2010/11. 2º Exame 28 de Junho de 2011

Universidade Federal de Uberlândia

PROGRAMAÇÃO ORIENTADA A OBJETOS: OCULTAR INFORMAÇÕES E ENCAPSULAMENTO

Herança e Polimorfismo

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

Classe Abstrata e Interface

Conceitos de Programação Orientada a Objetos

Herança (parte 2) Redefinição de métodos AULA 11

Nome do Aluno: Matrícula: Turma: Data: 08/04/2013

Transcrição:

Programação Orientada a Objetos Herança Cristiano Lehrer, M.Sc.

Introdução (1/4) Herança é um mecanismo que permite basear uma nova classe na definição de uma classe previamente existente. Usando herança, a nova classe herda todos os atributos e comportamentos presentes na classe previamente existente. Quando uma classe herda de outra, todos os métodos e atributos que aparecem na interface da classe previamente existente aparecerão automaticamente na interface da nova classe.

Introdução (2/4) public class Employee { private String first_name; private String last_name; private double wage; public Employee(String first_name, String last_name, double wage) { this.first_name = first_name; this.last_name = last_name; this.wage = wage; public double getwage() { return this.wage; public String getfirstname() { return this.first_name; public String getlastname() { return this.last_name;

Introdução (3/4) public class CommissionedEmployee extends Employee { private double commission; private int units; public CommissionedEmployee(String first_name, String last_name, double wage, double commission) { super(first_name, last_name, wage); this.commission = commission; public double calculatepay() { return getwage() + (this.commission * this.units); public void addsales(int units) { this.units = this.units + units; public void resetsales() { this.units = 0;

Introdução (4/4) public static void main(string[] args) { CommissionedEmployee c; c = new CommissionedEmployee("Mr.", "Sales", 5.50, 1.00); c.addsales(5); System.out.println("First Name: " + c.getfirstname()); System.out.println("Last Name: " + c.getlastname()); System.out.println("Base Pay: $" + c.getwage()); System.out.println("Total Pay: $" + c.calculatepay()); First Name: Mr. Last Name: Sales Base Pay: $5.5 Total Pay: $10.5

É UM versus TEM UM É um descreve o relacionamento em que uma classe é considerada do mesmo tipo de outra. Tem um descreve o relacionamento em que uma classe contém uma instância de outra classe. Composição significa que uma classe é implementada usando-se variáveis internas (chamadas de variáveis membro), que contêm instâncias de outras classes. Delegação é o processo de um objeto passar uma mensagem para outro objeto, para atender algum pedido.

Hierarquia (1/2) Uma hierarquia de herança é um mapeamento do tipo árvore de relacionamentos que se formam entre classes como resultado da herança. A classe filha é a classe que está herdando, também conhecida como subclasse. A classe progenitora ou mãe é a classe da qual a filha herda diretamente, também conhecida como superclasse. Herança é um mecanismo que permite estabelecer relacionamentos 'é um' entre classes. Esse relacionamento também permite que uma subclasse herde os atributos e comportamentos de sua superclasse.

Hierarquia (2/2) Format DateFormat MessageFormat NumberFormat SimpleDateFormat ChoiceFormat DecimalFormat

Mecânica da Herança (1/4) Sobrepor é o processo de uma filha pegar um método que aparece na progenitora e reescrevê-lo para mudar o comportamento do método. A sobreposição de um método também é conhecida como redefinição de um método.

Mecânica da Herança (2/4) public class TwoDimensionalPoint { private double x, y; public TwoDimensionalPoint(double x, double y) { setxcoordinate(x); setycoordinate(y); public double getxcoordinate() { return this.x; public double getycoordinate() { return this.y; public void setxcoordinate(double x) { this.x = x; public void setycoordinate(double y) { this.y = y; public String tostring() { return "I am a 2 dimensional point.\n" + "My x coordinate is: " + getxcoordinate() + "\n" + "My y coordinate is: " + getycoordinate();

Mecânica da Herança (3/4) public class ThreeDimensionalPoint extends TwoDimensionalPoint { private double z; public ThreeDimensionalPoint(double x, double y, double z) { super(x, y); setzcoordinate(z); public double getzcoordinate() { return this.z; public void setzcoordinate(double z) { this.z = z; public String tostring() { return "I am a 3 dimensional point.\n" + "My x coordinate is: " + getxcoordinate() + "\n" + "My y coordinate is: " + getycoordinate() + "\n" + "My z coordinate is: " + getzcoordinate();

Mecânica da Herança (4/4) public static void main(string[] args) { TwoDimensionalPoint two = new TwoDimensionalPoint(1, 2); ThreeDimensionalPoint three = new ThreeDimensionalPoint(3, 4, 5); System.out.println(two.toString()); System.out.println(three.toString()); I am a 2 dimensional point. My x coordinate is: 1 My y coordinate is: 2 I am a 3 dimensional point. My x coordinate is: 3 My y coordinate is: 4 My z coordinate is: 5