Herança
Herdar para quê?
Qual o programador que nunca se viu desenvolvendo programas
através da cópia de longos trechos
de código e da realizacão de pequenas alteracões neste código?
O mecanismo de herança presente em linguagens orientadas a objeto
se propõe a resolver este problema.
Definição de Herança
Herança consiste na construção de novas classes através da
especialização de classes pré-existentes.
As classes pré-existentes,
chamadas de superclasses,
contêm variáveis e métodos genéricos e inespecíficos.
As classes a serem construídas, chamadas de subclasses,
aproveitam tudo que já está
definido nas superclasses e modificam ou acrescentam apenas
as (poucas) alteracões que lhes são específicas.
Benefícios no Uso de Herança
O resultado esperado com o uso adequado de herança é uma
reducão geral no tamanho do código,
e a construção de bibliotecas de classe com grande capacidade
de reuso. O impacto se dá principalmente na melhoria da qualidade
dos programas, redução do esforço de desenvolvimento e manutenção
de programas.
Herança no Banco de Java
Podemos, por exemplo, usar herança na definição de tipos específicos
de conta bancária. As características comuns a todos os tipos
de contas bancárias que existem
são definidas na superclasse ContaBancaria. Observe a figura:

Parte do código da classe ContaBancaria é o seguinte:
class ContaBancaria {
int saldoAnterior, saldoAtual;
Transacao[] transacoes;
...
}
As contas de poupança e
conta corrente são casos específicos de conta bancária. Sendo assim
as classes Poupanca e ContaCorrente herdam da
classe ContaBancaria, e acrescentam ou redefinem
apenas as variáveis e métodos que lhes são específicos.
class Poupanca extends ContaBancaria {
int jurosAcumulados;
float taxaJuros;
...
}
class ContaCorrente extends Contabancaria {
...
}
Contas de cheque especial, por outro lado, são contas bancárias
com características específicas. Sendo assim a classe
ContaEspecial herda da classe ContaCorrente,
e acrescenta ou redefine apenas as características que lhes são
específicas.
class ContaEspecial extends ContaCorrente {
int limite;
float taxaJuros;
...
}
[Back]
[Forward]
[Index] Curso Introdutório de Java - Copyright, 1996 Recife Java Team