Documente Academic
Documente Profesional
Documente Cultură
imprimeSalario()
comportamento tempoDeServico()
Herana Herana
O mecanismo de herana permite reutilizar o Extensibilidade:
cdigo de classes existentes algumas operaes da superclasse podem
Apenas novos atributos ou mtodos precisam ser redefinidas na subclasse
ser definidos Comportamento:
Herana introduz os conceitos de: objetos da subclasse comportam-se como
Superclasse e Subclasse os objetos da superclasse
Reuso de Cdigo: Princpio da Substituio:
Tudo que a superclasse tem, a subclasse tambm objetos da subclasse podem ser usados no
tem lugar de objetos da superclasse
A definio de Gerente (subclasse) vai fazer uso da Onde Funcionario aceito, Gerente tambm
definio de Funcionario (superclasse). ser
1
Herana Construtores e subclasses
Visilibidade: public class Gerente extends Funcionario{
private double gratificacao;
Atributos e mtodos com o modificador protected public Gerente (int codigo, String nome,
podem ser acessados na classe em que so double salario, double gratificacao)
declarados e nas suas subclasses {
Por isso, quando temos Herana, temos de trocar o super(codigo, nome, salario);
qualificador private para protected this.gratificacao = gratificacao;
}
Estrutura herdada: atributos e mtodos }
Construtores:
A clusula super chama o construtor da superclasse, no
no so herdados -> precisam ser implementados
na subclasse. caso acima, o construtor de Funcionario
construtores da subclasse sempre utilizam algum se super no for chamado, o se no existir um construtor
construtor da superclasse atravs da clusula compilador acrescenta uma default na superclasse,
super. chamada ao construtor default: haver um erro de
super() compilao
Sobrecarga e Sobreposio
2
Polimorfismo Sobrecarga
Significa usar o mesmo nome para se Possibilidade de uma classe possuir mais de
referir a mtodos diferentes ou que se um mtodo ou construtor com mesmo nome,
comportam de maneira diferente porm com parmetros diferentes.
Um objeto pode responder de diferentes
Temos dois tipos de polimorfismo: maneiras a um mtodo de mesmo nome
sobrecarga (overloading)
A deciso de qual mtodo chamar feita em
sobreposio (overriding) tempo de execuo, dependendo de qual
parmetro for passado.
2 tipos de sobrecarga: construtor e mtodos
Conta
calcularJuros()
calcularJuros(int x)
Sobreposio Sobreposio
Conhecido por overriding ou A sobreposio s ocorre associada a
sobreposio. um caso de herana, ou seja, entre
Para que haja a sobreposio de superclasse e subclasse
mtodos, o novo mtodo deve ter a Ela usada quando o mtodo que seria
mesma assinatura (nome e parmetros) herdado da superclasse no atende aos
que o mtodo da super classe requisitos da subclasse e, por isso,
Conta
Se o nome for o mesmo, mas os precisa ser sobreposto.
parmetros forem de tipos diferentes calcularJuros()
Conta especial
haver overloading (sobrecarga) e no
sobreposio calcularJuros()
Sobreposio Sobreposio
Quando se invoca um mtodo da Exemplo: na classe Funcionrio
subclasse, a classe que sofreu a
public double consultaSalario ()
invocao procura por um mtodo que {
possa ser aplicado. Caso no encontre a }
return salario;
3
Exerccio
A partir do sistema bancrio anteriormente
implementado, crie a classe ContaEspecial
que herda de Conta e tem adicionalmente o
atributo limiteCredito.
Faa os ajustes em Conta necessrios para haver
herana
Os mtodos sacar e emitirSaldo origintais de
conta devem ser sobrescritos para atender a
ContaEspecial (uma vez que tem de ser
considerado o limite de crdito).
A classe SistemaBancario precisar ser
modificada para criar contas especiais