5 - herança
DESCRIPTION
HerançaTRANSCRIPT
-
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