Herança/
Polimorfismo
em JAVA
JAVA
Curso técnico de Informática, SENAC / MG
Orientador Evandro Júnior
• Mecanismo pelo qual elementos mais específicos (subclasses)
incorporam estrutura e comportamento de elementos mais gerais
(superclasses).
// SuperClass.java
public class SuperClass {
...
}
// SubClass.java
public class SubClass extends SuperClass {
...
}
 Herança é a capacidade de reutilizar código pela especialização de
soluções genéricas já existentes.
 Herança é na verdade, uma classe derivada de outra classe. Processo
no qual uma classe herda características de outra.
Herança
Herança
Subclasse
 Herda atributos e métodos
 Modifica métodos
 Acrescenta novos atributos e métodos
A subclasse estende a superclasse
Herança
Herança
Os animais
• Todos os nossos animais herdam da classe
Animal, porque todos eles fazem coisas
parecidas, como comer, andar, dormir e fazer
barulhos;
• Além dessas ações, a classe animal tem propriedades
para designar peso, altura e a cor de sua pele (ou
pelos);
Herança
Classe Animal
Herança
Indo para os outros animais
• Agora nós não precisamos mais implementar essas mesmas funcionalidades
básicas nos nossos animais, todos eles vão herdar as qualidades da classe
Animal;
• Quando um dos nossos animais não estiver interessado na funcionalidade
provida pela classe Animal ele vai poder alterar essa funcionalidade só para
ele;
• Os objetos que herdam de animal são versões especializadas do nosso animal;
• Para informar que uma classe herda da outra nós usamos a palavra reservada
“extends ”;
Herança
Exemplo
Funcionário
Nome
RG
Salario
Aumento(valor)
Pagamento()
Chefe
Contas
Gastos_extra
Adicional_chefia
Pagamento_extra()
Herança
Implementação da subclasse Chefe
Herança
Instanciação da subclasse
Herança
Hierarquia de Classes
Superclasse direta:
• Herdada explicitamente (um nível acima da
hierarquia).
Superclasse indireta:
• Herdada de dois ou mais níveis acima da hierarquia.
Herança
Hierarquia de Classes
Herança única:
• Herda de uma superclasse.
Herança múltipla:
• Herda de múltiplas superclasses.
– Java não suporta herança múltipla
Polimorfismo
Polimorfismo = várias formas
É o princípio pelo qual duas ou mais classes
derivadas de uma mesma superclasse
podem invocar métodos que têm a mesma
identificação (assinatura) mas
comportamentos distintos.
Polimorfismo
Animal
Tipo
Cor
Peso
...
Comer()
Cachorro
Comer() {
“cachorro come ração...”
}
Tigre
Comer() {
“cachorro come osso...”
}
Herança
Exemplo de animal especializado

Herança e polimorfismo em Java