pcii - aula 2: heranÇa em java

24
PCII ETEC MONSENHOR ANTONIO MAGLIANO 2014 Prof. Aloisio

Upload: etec-mam

Post on 26-Jun-2015

171 views

Category:

Technology


3 download

DESCRIPTION

HERANÇA: INTRODUÇÃO

TRANSCRIPT

Page 1: PCII -  AULA 2: HERANÇA EM JAVA

PCII

ETEC MONSENHOR ANTONIO MAGLIANO

2014Prof. Aloisio

Page 2: PCII -  AULA 2: HERANÇA EM JAVA

ClassesHerança

& Polimorfismo

Page 3: PCII -  AULA 2: HERANÇA EM JAVA

O que é Herança? Através da herança podemos fazer com que uma classe herde propriedades de outra classe. Geralmente devemos identificar classes que possuem propriedades e comportamentos similares.

A base da herança pode ser listada como a seguir :

– propriedades comuns são transmitidas aos descendentes

– descendentes podem adicionar/alterar propriedades

– estabelecem uma hierarquia de classes– reduzem a quantidade de código

Page 4: PCII -  AULA 2: HERANÇA EM JAVA

Classe (Declaração)

public class NomeClasse extends ClassePai {

}

public class PessoaJuridica extends Pessoa{

}

Page 5: PCII -  AULA 2: HERANÇA EM JAVA

Exemplo (UML)

A classe Pessoa Física e Pessoa Jurídica herdam da classe Pessoa

Page 6: PCII -  AULA 2: HERANÇA EM JAVA

Exemplo(Pessoa)

Page 7: PCII -  AULA 2: HERANÇA EM JAVA

Exemplo(PessoaFisica)

REESCRITA DE MÉTODO

Page 8: PCII -  AULA 2: HERANÇA EM JAVA

Exemplo (PessoaJuridica)

Page 9: PCII -  AULA 2: HERANÇA EM JAVA

Exemplo (Classe Principal)

Page 10: PCII -  AULA 2: HERANÇA EM JAVA

Exemplo (Classe Principal)

Polimorfismo

Page 11: PCII -  AULA 2: HERANÇA EM JAVA

Exemplo (EXECUTANDO)

Na herança, vimos que toda PessoaFisica é uma Pessoa, pois é uma extensão desta. Podemos nos referir a uma PessoaFisica como sendo uma Pessoa.

Page 12: PCII -  AULA 2: HERANÇA EM JAVA

POLIMORFISMO

Polimorfismo é a capacidade de um objeto poder ser referenciado de várias formas. (cuidado, polimorfismo não quer dizer que o objeto fica se transformando, muito pelo contrário, um objeto nasce de um tipo e morre daquele tipo, o que pode mudar é a maneira como nos referimos a ele).

Page 13: PCII -  AULA 2: HERANÇA EM JAVA

Adicionando mais uma classe

PessoaFisicaEspecial

Page 14: PCII -  AULA 2: HERANÇA EM JAVA

Exemplo (UML)A classe Pessoa Física Especial herda da classe Pessoa Física

E também é uma Pessoa... (Classe)

Page 15: PCII -  AULA 2: HERANÇA EM JAVA

Exemplo (PessoaFisicaEspecial)

Page 16: PCII -  AULA 2: HERANÇA EM JAVA

Alterar (Classe Principal)

Page 17: PCII -  AULA 2: HERANÇA EM JAVA

Alterar (Classe Principal)

Page 18: PCII -  AULA 2: HERANÇA EM JAVA

Exemplo (EXECUTANDO)

Page 19: PCII -  AULA 2: HERANÇA EM JAVA

Outro Exemplo (Uma Fábrica)Toda fábrica possui funcionários. Vamos imaginar que ao fim do ano, caso as metas sejam cumpridas, todos funcionários recebam um bônus de 10% sobre o salário mensal:class Funcionario {

String nome;String cpf; double salario;

public double getBonificacao() {

return salario * 0.10; }}

Page 20: PCII -  AULA 2: HERANÇA EM JAVA

Outro Exemplo (O Gerente)Além de funcionários comuns, há também outros cargos, como os gerentes. Os gerentes tem as mesmas informações que um funcionário comum + o número de subordinados a eles.Além disto, possui uma bonificação de 20%.class Gerente extends Funcionario {

int numDeSubordinados;}

Se não alterarmos a classe Gerente , ela herdará do Funcionário o método getBonificacao.

Page 21: PCII -  AULA 2: HERANÇA EM JAVA

Outro Exemplo (Bonificação)class Principal {

public static void main(String[] args) {

Gerente g= new Gerente(); Funcionario f = new Funcionario();

g.setNome(“Aloisio"); g.setSalario(10000.0);

f.setNome(“José"); f.setSalario(2000.0);

double bg = g.getBonificacao( ); double bf = f.getBonificacao( );

} }

1.000 = 10%

200 = 10%

Page 22: PCII -  AULA 2: HERANÇA EM JAVA

Solucionando (Polimorfismo)

Para solucionar isto, uma das opções seria criar um novo método na classe Gerente, chamado, por exemplo: getBonificacaoGerente.

Problema: 2 métodos em Gerente, com respostas diferentes e gerando confusão.

Solução: Quando herdamos um método, podemos reescrever este método, alterarando seu comportamento.

Page 23: PCII -  AULA 2: HERANÇA EM JAVA

Solucionando (Polimorfismo)class Gerente extends Funcionario {

int numDeSubordinados;

@overridepublic double

getBonificacao() { return salario * 0.20;

}

}

Reescrevendo método

Page 24: PCII -  AULA 2: HERANÇA EM JAVA

BIBLIOGRAFIA• Java - Como programar, Harvey M. Deitel

• eclipse.org

• www.oracle.com/technetwork/java/index.html

• http://www.caelum.com.br/apostila-java-orientacao-objetos/heranca-reescrita-e-polimorfismo/#7-4-polimorfismo