Você está na página 1de 17

Linguagem e Tcnica de Programao Tecnologia Java

Professor: Hlder Seixas Lima E-mail: helder.seixas@ifnmg.edu.br

Orientao a Objetos: Herana, reescrita e polimorfismo

Imagine o contexto de um sistema bancrio


Um banco que possui vrias agncias; Os clientes podem abrir contas em diversas agncias; Existem dois tipos de contas: corrente e poupana; A conta corrente possui: nmero, nmero da agncia, cliente, saldo e limite; A conta poupana possui: nmero, nmero da agncia, cliente, saldo e dia de aniversrio;

O que acha desta soluo?

Qual problema da soluo? Duplicao de cdigo

Como resolver o problema? Herana

Herana

Herana um recurso que permite que novas classes sejam definidas a partir de classes j definidas. Na hierarquia de classes:

Super classes (ou ascendente): ascendentes de uma classe. Sub classes (ou descendente): descendentes de uma classe

so so

as as

Classe me: a ascendente direta de um classe Classe filha: a descendente direta de uma classe.

Herana

No exemplo:

Filha descendente ou subclasse de Me e Av. Me e Av so ascendentes ou superclasses de Filha Me descendente ou subclasse de Av. Me filha de Av. Me herda caractersticas comportamentos de Av. Filha herda caractersticas comportamentos de Me e de Av. e e

Significa que:

Testando o Conceito de Herana


Crie um novo projeto; Implemente as classes de entidade Agencia e Cliente;

Testando o Conceito de Herana


Implemente a classe me: Conta; Perceba que os atributos so declarados como protected e no como private; No caso dos atributos Agencia e Cliente referenciamos os Objetos e no cdigos.

Testando o Conceito de Herana

Implemente as classes filhas: ContaCorrente e ContaPoupanca; Perceba que a herana implementada atravs da palavra reservada extends.

Testando o Conceito de Herana

Instancie objetos no main e faa observaes.

Testando o Conceito de Herana

Reescrita de mtodo

Considere que toda conta possui um mtodo que representa o valor disponvel para saque; Por padro o valor disponvel para saque o saldo; Especialmente para a conta corrente o valor disponvel para saque saldo mais o limite.

Reescrita de mtodo

Acrescente o seguinte mtodo na classe Conta.

Reescrita de mtodo

Reescreva o mtodo na classe ContaCorrente.

Reescrita de mtodo

Agora acrescente uma chamada para o novo mtodo no mtodo main e observe por onde est passando.