PCII - AULA 2: HERANÇA EM JAVA
-
Upload
etec-mam -
Category
Technology
-
view
171 -
download
3
description
Transcript of PCII - AULA 2: HERANÇA EM JAVA
![Page 1: PCII - AULA 2: HERANÇA EM JAVA](https://reader035.fdocument.pub/reader035/viewer/2022062419/558cfd86d8b42a5b4b8b45b5/html5/thumbnails/1.jpg)
PCII
ETEC MONSENHOR ANTONIO MAGLIANO
2014Prof. Aloisio
![Page 2: PCII - AULA 2: HERANÇA EM JAVA](https://reader035.fdocument.pub/reader035/viewer/2022062419/558cfd86d8b42a5b4b8b45b5/html5/thumbnails/2.jpg)
ClassesHerança
& Polimorfismo
![Page 3: PCII - AULA 2: HERANÇA EM JAVA](https://reader035.fdocument.pub/reader035/viewer/2022062419/558cfd86d8b42a5b4b8b45b5/html5/thumbnails/3.jpg)
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](https://reader035.fdocument.pub/reader035/viewer/2022062419/558cfd86d8b42a5b4b8b45b5/html5/thumbnails/4.jpg)
Classe (Declaração)
public class NomeClasse extends ClassePai {
}
public class PessoaJuridica extends Pessoa{
}
![Page 5: PCII - AULA 2: HERANÇA EM JAVA](https://reader035.fdocument.pub/reader035/viewer/2022062419/558cfd86d8b42a5b4b8b45b5/html5/thumbnails/5.jpg)
Exemplo (UML)
A classe Pessoa Física e Pessoa Jurídica herdam da classe Pessoa
![Page 6: PCII - AULA 2: HERANÇA EM JAVA](https://reader035.fdocument.pub/reader035/viewer/2022062419/558cfd86d8b42a5b4b8b45b5/html5/thumbnails/6.jpg)
Exemplo(Pessoa)
![Page 7: PCII - AULA 2: HERANÇA EM JAVA](https://reader035.fdocument.pub/reader035/viewer/2022062419/558cfd86d8b42a5b4b8b45b5/html5/thumbnails/7.jpg)
Exemplo(PessoaFisica)
REESCRITA DE MÉTODO
![Page 8: PCII - AULA 2: HERANÇA EM JAVA](https://reader035.fdocument.pub/reader035/viewer/2022062419/558cfd86d8b42a5b4b8b45b5/html5/thumbnails/8.jpg)
Exemplo (PessoaJuridica)
![Page 9: PCII - AULA 2: HERANÇA EM JAVA](https://reader035.fdocument.pub/reader035/viewer/2022062419/558cfd86d8b42a5b4b8b45b5/html5/thumbnails/9.jpg)
Exemplo (Classe Principal)
![Page 10: PCII - AULA 2: HERANÇA EM JAVA](https://reader035.fdocument.pub/reader035/viewer/2022062419/558cfd86d8b42a5b4b8b45b5/html5/thumbnails/10.jpg)
Exemplo (Classe Principal)
Polimorfismo
![Page 11: PCII - AULA 2: HERANÇA EM JAVA](https://reader035.fdocument.pub/reader035/viewer/2022062419/558cfd86d8b42a5b4b8b45b5/html5/thumbnails/11.jpg)
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](https://reader035.fdocument.pub/reader035/viewer/2022062419/558cfd86d8b42a5b4b8b45b5/html5/thumbnails/12.jpg)
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](https://reader035.fdocument.pub/reader035/viewer/2022062419/558cfd86d8b42a5b4b8b45b5/html5/thumbnails/13.jpg)
Adicionando mais uma classe
PessoaFisicaEspecial
![Page 14: PCII - AULA 2: HERANÇA EM JAVA](https://reader035.fdocument.pub/reader035/viewer/2022062419/558cfd86d8b42a5b4b8b45b5/html5/thumbnails/14.jpg)
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](https://reader035.fdocument.pub/reader035/viewer/2022062419/558cfd86d8b42a5b4b8b45b5/html5/thumbnails/15.jpg)
Exemplo (PessoaFisicaEspecial)
![Page 16: PCII - AULA 2: HERANÇA EM JAVA](https://reader035.fdocument.pub/reader035/viewer/2022062419/558cfd86d8b42a5b4b8b45b5/html5/thumbnails/16.jpg)
Alterar (Classe Principal)
![Page 17: PCII - AULA 2: HERANÇA EM JAVA](https://reader035.fdocument.pub/reader035/viewer/2022062419/558cfd86d8b42a5b4b8b45b5/html5/thumbnails/17.jpg)
Alterar (Classe Principal)
![Page 18: PCII - AULA 2: HERANÇA EM JAVA](https://reader035.fdocument.pub/reader035/viewer/2022062419/558cfd86d8b42a5b4b8b45b5/html5/thumbnails/18.jpg)
Exemplo (EXECUTANDO)
![Page 19: PCII - AULA 2: HERANÇA EM JAVA](https://reader035.fdocument.pub/reader035/viewer/2022062419/558cfd86d8b42a5b4b8b45b5/html5/thumbnails/19.jpg)
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](https://reader035.fdocument.pub/reader035/viewer/2022062419/558cfd86d8b42a5b4b8b45b5/html5/thumbnails/20.jpg)
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](https://reader035.fdocument.pub/reader035/viewer/2022062419/558cfd86d8b42a5b4b8b45b5/html5/thumbnails/21.jpg)
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](https://reader035.fdocument.pub/reader035/viewer/2022062419/558cfd86d8b42a5b4b8b45b5/html5/thumbnails/22.jpg)
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](https://reader035.fdocument.pub/reader035/viewer/2022062419/558cfd86d8b42a5b4b8b45b5/html5/thumbnails/23.jpg)
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](https://reader035.fdocument.pub/reader035/viewer/2022062419/558cfd86d8b42a5b4b8b45b5/html5/thumbnails/24.jpg)
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