pcii - aula 2: heranÇa em java

Post on 26-Jun-2015

171 Views

Category:

Technology

3 Downloads

Preview:

Click to see full reader

DESCRIPTION

HERANÇA: INTRODUÇÃO

TRANSCRIPT

PCII

ETEC MONSENHOR ANTONIO MAGLIANO

2014Prof. Aloisio

ClassesHerança

& Polimorfismo

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

Classe (Declaração)

public class NomeClasse extends ClassePai {

}

public class PessoaJuridica extends Pessoa{

}

Exemplo (UML)

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

Exemplo(Pessoa)

Exemplo(PessoaFisica)

REESCRITA DE MÉTODO

Exemplo (PessoaJuridica)

Exemplo (Classe Principal)

Exemplo (Classe Principal)

Polimorfismo

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.

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).

Adicionando mais uma classe

PessoaFisicaEspecial

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

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

Exemplo (PessoaFisicaEspecial)

Alterar (Classe Principal)

Alterar (Classe Principal)

Exemplo (EXECUTANDO)

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; }}

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.

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%

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.

Solucionando (Polimorfismo)class Gerente extends Funcionario {

int numDeSubordinados;

@overridepublic double

getBonificacao() { return salario * 0.20;

}

}

Reescrevendo método

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

top related