Prévia do material em texto
Herança
Herança
Ela é considerada um dos conceitos
mais importantes na POO. A herança
trouxe para a programação um novo
olhar sobre a maneira de se programar,
até então não atendido pela
Programação Estruturada.
Vamos descobrir que os objetos tem
mae
Herança
Herança é o mecanismo que permite a
uma classe herdar todos os atributos e
métodos de outra classe. Ela permite
definir a implementação de uma nova
classe na definição de uma classe
previamente implementada.
QUANDO AS CLASSE HERDAM SEUS
ATRIBUTOS
Considere como classes as seguintes abstrações:
Transporte, Aquático, Terrestre, Aéreo, Barco,Automóvel
e Avião.
Considere capacidade como um atributo da classe Transporte,
que indica a quantidade de pessoas que o transporte em
questão pode transportar.
E número de rodas como um atributo da classe Terrestre.
E cor, número de portas e placa como atributos da classe
Automóvel.
A Figura 2 apresenta um exemplo de Herança, onde as
classes Aquático, Terrestre e Aéreo herdam da
classe Transporte. A classe Barco herda da
classe Aquático. A classe Automóvel herda de Terrestre. E,
finalmente, Avião de Aéreo.
a classe filha não pode remover
os atributos e métodos da classe
mãe.
Herança
A super-classe Mamíferos e a
sub-classe Humano que
herdam as características da
super classe.As características
definidas na classe Mamífero
estarão presentes nas classes
que herdam dela. Todos os
Mamíferos terão Nome e
Pelos. Isto é Herança.
+casado:boolen
MAMIFEROS
+Nome : String
+Idade : int
+Aleitar ( )
+Comunicar ( )
Humano
+rir ( )
Cães
+corre ( )
+raça:String
Generalização e Especialização
Na herança
utilizamos a
palavra
reservada
extends
Exemplo
Todos ele são animais
Animal
peso: double
comida:String
correr( ):void
Dormir( ):void
Cachorro
enterrarOsso(
) :void
Coruja
voar( ):void
botar ( ):void
Galinha
voar( ):void
botar ( ):void
Exemplo
Animal
peso: double
comida:String
correr( ):void
Dormir( ):void
Cachorro
enterrarOsso(
) :void
Coruja Galinha
Ave
voar( ):void
botar ( ):void
Código classe animal
public class Animal {
double peso;
String comida;
void dormir(){
System.out.print("Dormiu");
}
void fazerbarulho(){
System.out.print("Fazer barulho");
}
}
Classe
public class Cachorro extends Animal {
}
public class Galinha
extends Animal{
}
Classe Animal Teste
public class AnimalTeste {
public static void main(String args []){
Cachorro toto = new Cachorro();
toto.comida="Carne";
toto.dormir();
Galinha pintadinha = new Galinha();
pintadinha.dormir();
Teste é uma HERANÇA
Exercício
Usando a lógica de herança
responda:
Quantos e quais são os
atributos da classe Terrestre?
E da classe Automóvel?
Respondendo:
a classe Terrestre possui dois atributos:
capacidade (que é herdado de
Transporte) e número de rodas.
Já a classe Automóvel possui cinco
atributos:
capacidade (herdado de Transporte),
número de rodas (herdado de
Terrestre), cor, número de portas e
placa.
Como seria o codigo?
Construtores
Na classe cachorro preciso criar meu
construtor, mas para isso eu preciso
chamar o construtor da classe mãe.
Como chamar meu construtor nas
subclasses?
Classe Cachorro
public class Cachorro extends
Animal {
public Cachorro(){
super(20,"Carne");
}
}
A chamada do método construtor da
superclasse
deve ser sempre o primeiro comando a
aparecer
no construtor da subclasse.
Exercícios
1-Crie uma classe Animal que obedeça
à seguinte descrição:
possua os atributos:
nome (String),
comprimento (float),
número de patas (int),
cor (String),
ambiente (String) e
velocidade média (float)
2-Crie um método construtor que
receba por parâmetro os valores
iniciais de cada um dos atributos e
atribua-os aos seus respectivos
atributos.
Crie os métodos get e set para cada
um dos atributos.
Crie um método dados, sem
parâmetro e do tipo void, que,
quando chamado, imprime na tela
uma espécie de relatório informando
os dados do animal.
3-Crie uma classe Peixe que herde da classe Animal e
obedeça à seguinte descrição:
possua um atributo característica(String)
Crie um método construtor que receba por parâmetro
os valores iniciais de cada um dos atributos (incluindo
os atributos da classe Animal) e atribua-os aos seus
respectivos atributos.
4- Crie ainda os métodos get e set para o atributo
característica.
5-Crie um método dadosPeixe sem parâmetro e do tipo
void, que, quando chamado, imprime na tela uma
espécie de relatório informando os dados do peixe
(incluindo os dados do Animal e mais a
característica).
exercícios
1-Crie uma classe Mamífero que herde da classe Animal e
obedeça à seguinte descrição:
possua um atributo alimento(String)
2- Crie um método construtor que receba por parâmetro os
valores iniciais de cada um dos atributos (incluindo os
atributos da classe Animal) e atribua-os aos seus
respectivos atributos.
3-Crie ainda os métodos get e set para o atributo alimento.
4- Crie um método dadosMamifero sem parâmetro e do
tipo void, que, quando chamado, imprime na tela uma
espécie de relatório informando os dados do mamifero
(incluindo os dados do Animal e mais o alimento).
1-Crie uma classe TestarAnimais possua um
método main para testar as classes criadas.
a) Crie um objeto camelo do tipo Mamífero e
atribua os
seguintes valores para seus atributos:
Nome: Camelo
Comprimento: 150 cm
Patas: 4
Cor: Amarelo
Ambiente: Terra
Velocidade: 2.0 m/s
b) Crie um objeto tubarao do tipo Peixe e
atribua os
seguintes valores para seus atributos
Nome: Tubarão
Comprimento: 300 cm
Patas: 0
Cor: Cinzento
Ambiente: Mar
Velocidade: 1.5 m/s
Caracteristica: Barbatanas e cauda
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
Chame os método para imprimir os dados
de cada um dos objetos criados.
Herança
Herança
Herança
QUANDO AS CLASSE HERDAM SEUS ATRIBUTOS
Slide 5
Herança
Generalização e Especialização
Exemplo
Todos ele são animais
Exemplo
Código classe animal
Classe
Classe Animal Teste
Teste é uma HERANÇA
Exercício
Slide 16
Slide 17
Slide 18
Slide 19
Slide 20
Como seria o codigo?
Slide 22
Construtores
Classe Cachorro
Slide 25
Slide 26
Exercícios
Slide 28
Slide 29
exercícios
Slide 31
Slide 32
Slide 33
Slide 34