Upload
johnatas-ferreira
View
30
Download
1
Embed Size (px)
DESCRIPTION
Herança
Citation preview
Herana
Jefferson Ferreira Barbosa [email protected]
Joo Pessoa 2014
CENTRO UNIVERSITRIO DE JOO PESSOA COORDENAO DE SISTEMAS DE INFORMAO
At aqui...
Fundamentos da Linguagem Java Princpios da Orientao a Objetos Denies da Linguagem Construtores, Encapsulamento e Sobrecarga
Hoje: Herana
2 Herana
3
Vamos imaginar o funcionamento de um sistema acadmico do Unip, que controla o cadastro
de alunos, professores e funcionrios
Vamos imaginar o funcionamento de um sistema acadmico do Unip, que controla o cadastro de alunos, professores e funcionrios
Herana 4
Conceito
Imagine se um dia precisarmos adicionar uma nova informao(CPF, por exemplo), para todas as Pessoas do controle acadmico?
Precisaramos ir de classe em classe adicionando a informao do CPF.
5 Herana
Conceito
Ao modelar um conjunto de classes, podemos encontrar classes semelhantes na estrutura e no comportamento.
Ex i s t e uma mane i r a , em J ava , de relacionarmos uma classe de tal maneira que uma delas herda tudo que a outra tem.
6 Herana
Ento, como implementar?
A ideia central de herana que novas classes so criadas a parYr de classes j existentes. Subclasse herda de uma Superclasse Subclasse mais especca que a Superclasse
Herana uma tcnica para prover suporte a especializao Classes mais abaixo: especializadas Classes mais acima: genricas
7 Herana
Representao Pessoa
-nome -email -telefone -idade -sexo
8
Professor
-salario -disciplina
Aluno
-matricula -notas
Funcionario
-salario
Herana
Em todo momento que criarmos um objeto do Ypo Professor, ou Aluno, ou Funcionrio, este objeto possuir tambm os atributos e mtodos denidos
na classe Pessoa, pois agora ele uma Pessoa
Sobreposio
Pode-se modicar algum mtodo da minha superclasse?
Sim, atravs da sobreposio! Mtodos implementados previamente em uma superclasse podem ser redenidos por qualquer subclasse
9
Para isso, mantm-se a mesma assinatura do mtodo herdado, redefinindo apenas o corpo do
mtodo
Herana
Tipos de Herana
Herana pura mtodos genricos so sobrepostos
Extenso novos comportamentos so adicionados nas classes de
especializao (mtodos genricos herdados)
Por exemplo:
10
Forma
+desenha() +apaga()
Quadrado
+desenha() +apaga()
Circulo
+desenha() +apaga() +deneRaio()
Herana Pura
Extenso
Herana
Posso herdar de vrias Classes?
Cada subclasse possui uma nica superclasse A isso, chamamos de herana simples Em algumas linguagens, possvel herdar a parYr de diversas superclasses (como em C++)
Java no permite herana mlYpla com classes
11 Herana
Recapitulando...
Se B uma subclasse de A, ento: Os objetos de B suportam todas as operaes suportadas pelos objetos de A, exceto aquelas que foram redenidas
Os objetos de B incluem todas as variveis de instncia de B + todas as variveis de instncia de A
Mtodos declarados como private no sero herdados Construtores tambm no so herdados
Sero chamados (em cascata) na construo de objetos especializados(super()).
12 Herana
Como acessar os atributos que herdamos?
13 Herana
Como acessar os atributos que herdamos?
No gostaramos de deixar os atributos de public, pois dessa maneira qualquer um poderia alterar os atributos dos objetos deste Ypo.
Existe um outro modicador de acesso, o protected, que ca entre o private e o public. Um atributo protected s pode ser acessado (visvel) pela prpria classe e por suas subclasses .
14 Herana
Resumo dos modicadores de Acesso
15
Visibilidade public protected private
Mesma classe Sim Sim Sim
Classe no mesmo pacote Sim Sim No
Subclasse do mesmo pacote Sim Sim No
Subclasse fora do mesmo pacote Sim Sim (Hr) No
Qualquer classe que no seja subclasse e esteja fora do pacote
Sim No No
Herana
16 Herana
Como implementar nosso primeiro exemplo?
Antes
17 Herana
Depois
18 Herana
Exerccio 1
A) Vamos criar uma classe Conta, que possua um saldo, os mtodos para pegar saldo, creditar e debitar
B) Adicione um mtodo na classe Conta, que atualiza essa conta de acordo com uma taxa percentual fornecida
C) Crie duas subclasses da classe Conta: ContaCorrente e ContaPoupanca. Ambas tero o mtodo atualiza sobrescrito: A ContaCorrente deve atualizar-se com o dobro da taxa e a ContaPoupanca deve atualizar-se com o triplo da taxa
D) Alm disso, a ContaCorrente deve reescrever o mtodo creditar, a m de reYrar uma taxa bancria de dez centavos de cada depsito
19 Herana