2. • 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
5. 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);
7. 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 ”;
11. 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.
12. 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
13. 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.