Você está na página 1de 24

AULA 16

HERANA
Disciplina: Programao Orientada a Objetos
Professora: Alba Lopes
alba.lopes@ifrn.edu.br

REPETIO

DE

CDIGO

Tomemos como exemplo a classe Funcionario, que


representa o funcionrio de um banco:

REPETIO

DE

CDIGO

Alm de um funcionrio comum, h tambm outros


cargos, como os gerentes.

Os gerentes guardam a mesma informao que um


funcionrio comum, mas possuem outras informaes,
alm de ter funcionalidades um pouco diferentes
Vamos supor que, nesse banco, o gerente possui
tambm uma senha numrica que permite o acesso ao
sistema interno do banco

REPETIO

DE

CDIGO

Classe Gerente:

REPETIO

CDIGO

Ao invs de criar duas classes diferentes, uma para


Funcionario e outra para gerente, poderamos ter
deixado a classe Funcionario mais genrica,
mantendo nela senha de acesso.

DE

Caso o funcionrio no fosse um gerente, deixaramos


este atributo vazio (no atribuiramos valor a ele).

Mas e em relao aos mtodos?

A classe Gerente tem o mtodo autentica, que no faz


sentido ser acionado em um funcionrio que no
gerente.

REPETIO

DE

CDIGO

Se tivssemos um outro tipo de funcionrio, que


tem caractersticas diferentes do funcionrio
comum, precisaramos criar uma outra classe, e
copiar o cdigo novamente!
Ou ainda, se um precisssemos adicionar uma
nova informao (ex: data de nascimento) para
todos os funcionrios?

Todas as classes teriam que ser alteradas para receber


essa informao

SOLUO: Centralizar as informaes principais


do funcionrio em um nico lugar!

HERANA
Existe uma maneira, em Java, de relacionarmos
uma classe de tal maneira que uma delas herda
tudo que a outra tem.
Isto uma relao de classe me e classe filha.
No nosso caso, gostaramos de fazer com que o
Gerente tivesse tudo que um Funcionario tem:

Gostaramos que ela fosse uma extenso de


Funcionario

Fazemos isto atravs da palavra chave extends

HERANA

HERANA

Todo momento que criarmos um objeto do tipo


Gerente, este objeto possuir tambm os atributos
definidos na classe Funcionario, pois agora um
Gerente um Funcionario!

HERANA

Termos utilizados:
Classes que fornecem Herana

Classes que herdam de outras

Superclasse

Subclasse

Pai

Filha

Tipo

Subtipo

HERANA

Exemplo de notao UML


Funcionario

-nome: String
-cpf:String
-salario: double
+getNome(): String
+getCpf(): String
+getSalario; double
+setNome(String): void
+setCpf(String): void
+setSaladio(double):void

Gerente
- senha: inteiro

+ autentica(int): boolean

HERANA

Exemplo de Teste da classe:

EXEMPLO 1

EXEMPLO 1

Usando a lgica de herana responda:

Quantos e quais so os atributos da classe Terrestre?


E da classe Automvel?

Respondendo:

a classe Terrestre possui dois atributos:

capacidade (que herdado de Transporte) e nmero de


rodas.

J a classe Automvel possui cinco atributos:

capacidade (herdado de Transporte), nmero de rodas


(herdado de Terrestre), cor, nmero de portas e placa.

Veja o cdigo completo de cada


uma das classes no pacote
aula16_exemplos.Transporte

EXEMPLO 1

Como seria o cdigo?


public class Transporte{
private int capacidade;
}
public class Terrestre extends Transporte{
private int numRodas;
}
public class Automovel extends Terrestre{
private String cor;
private int numPortas;
private String placa;
}

EXEMPLO 1

EXERCCIO

1.

No projeto Exemplos_e_Exercicios_POO, crie


um pacote aula16_exercicios
Crie uma classe Animal que obedea seguinte descrio:

possua os atributos nome (String), comprimento (float),


nmero de patas (int), cor (String), ambiente (String) e
velocidade mdia (float)
Crie um mtodo construtor que receba por parmetro os valores
iniciais de cada um dos atributos e atribua-os aos seus
respectivos atributos.
Crie os mtodos get e set para cada um dos atributos.
Crie um mtodo dados, sem parmetro e do tipo void, que,
quando chamado, imprime na tela uma espcie de relatrio
informando os dados do animal.

EXERCCIO
2.

Crie uma classe Peixe que herde da classe


Animal e obedea seguinte descrio:

possua um atributo caracteristica(String)


Crie um mtodo construtor que receba por parmetro
os valores iniciais de cada um dos atributos (incluindo
os atributos da classe Animal) e atribua-os aos seus
respectivos atributos.
Crie ainda os mtodos get e set para o atributo
caracteristica.
Crie um mtodo dadosPeixe sem parmetro e do tipo
void, que, quando chamado, imprime na tela uma
espcie de relatrio informando os dados do peixe
(incluindo os dados do Animal e mais a caracterstica).

EXERCCIO
3.

Crie uma classe Mamifero que herde da classe


Animal e obedea seguinte descrio:

possua um atributo alimento(String)


Crie um mtodo construtor que receba por parmetro
os valores iniciais de cada um dos atributos (incluindo
os atributos da classe Animal) e atribua-os aos seus
respectivos atributos.
Crie ainda os mtodos get e set para o atributo
alimento.
Crie um mtodo dadosMamifero sem parmetro e do
tipo void, que, quando chamado, imprime na tela uma
espcie de relatrio informando os dados do mamifero
(incluindo os dados do Animal e mais o alimento).

EXERCCIO
4.

Crie uma classe TestarAnimais possua um


mtodo main para testar as classes criadas.
a)

Crie um objeto camelo do tipo Mamfero e atribua os


seguintes valores para seus atributos:
Nome: Camelo
Comprimento: 150 cm
Patas: 4
Cor: Amarelo
Ambiente: Terra
Velocidade: 2.0 m/s

EXERCCIO
4.

(cont.)
b)

Crie um objeto tubarao do tipo Peixe e atribua os


seguintes valores para seus atributos
Nome: Tubaro
Comprimento: 300 cm
Patas: 0
Cor: Cinzento
Ambiente: Mar
Velocidade: 1.5 m/s
Caracteristica: Barbatanas e cauda

EXERCCIO
4.

(cont.)
c)

Crie um objeto ursocanada do tipo Mamifero e


atribua os seguintes valores para seus atributos:

Nome: Urso-do-canad
Comprimento: 180 cm
Patas: 4
Cor: Vermelho
Ambiente: Terra
Velocidade: 0.5 m/s
Alimento: Mel

EXERCCIO
4.

(cont.)
d)

Chame os mtodo para imprimir os dados de cada um


dos objetos criados.

REFERNCIAS
Caelum - Java e Orientao a Objetos
Mtropole Digital Programao Orientada a
Objetos:
http://www.metropoledigital.ufrn.br/aulas/disciplinas/
poo/aula_10.html