Orientação a Objetos - Gil Eduardo de Andrade

Propaganda
Orientação a Objetos
Herança
Generalização e Especialização
Gil Eduardo de Andrade
O Conceito de Herança
O que é “Herança”?
• Em alguns casos, diferentes classes possuem
características em comum;
• Ao invés de criarmos uma nova classe,
repetindo as características, utilizamos as
características da classe já existente;
• Ou seja, herança é uma classe que deriva de
outra classe pré-definida;
Aula 05: Herança – Gil Eduardo de Andrade
O Conceito de Herança
Como funciona “Herança”?
• Se tivermos uma classe Pessoa, com as
características ou atributos: nome e
data_nascimento;
• Se criarmos uma classe Aluno, então todas as
características da classe Pessoa também são
válidas para classe Aluno;
• Sendo assim Aluno deriva de Pessoa;
Aula 05: Herança – Gil Eduardo de Andrade
O Conceito de Herança
Herança em Java
• Para fazermos uma classe herdar
características de outra classe usamos a
palavra reserva extends;
• Por exemplo:
Public Class Aluno extends Pessoa {
}
Aula 05: Herança – Gil Eduardo de Andrade
O Conceito de Herança
Herança em Java
• Importante observar que: o Java só permite
que uma classe herde características de uma
outra única classe – não há herança múltipla;
• Entretanto, a herança pode ocorrer de forma
encandeada:
– Animal -> Mamífero -> Homem
Aula 05: Herança – Gil Eduardo de Andrade
O Conceito de Herança
Exemplo de Herança encadeada
Animal
Mamífero
Homem
Nascer() Morrer()
Nascer() Morrer() Mamar()
Nascer() Morrer() Mamar() Pensar()
Aula 05: Herança – Gil Eduardo de Andrade
O Conceito de Herança
Exemplo de Herança em Java
Herda as características (atributos e
métodos) da classe Pessoa.
Superclasse – mais genérica
Subclasse – mais especializada
Aula 05: Herança – Gil Eduardo de Andrade
O Conceito de Herança
Representação Gráfica da Herança
Pessoa
idade : int
nome : String
Aluno
ano : int
turma : String
Professor
cursos : String[]
disciplinas : String[]
Aula 05: Herança – Gil Eduardo de Andrade
O Conceito de Herança
Os construtores na Herança
• Na Herança, tanto a superclasse quanto a
subclasse possuem seus respectivos
construtores;
• E para que seja possível invocar o construtor
da superclasse, dentro da subclasse,
utilizamos o métodos super();
Aula 05: Herança – Gil Eduardo de Andrade
O Conceito de Herança
Exemplo de Herança: Método “super()”
Superclasse: generalização
Aula 05: Herança – Gil Eduardo de Andrade
O Conceito de Herança
Exemplo de Herança: Método “super()”
Subclasse: especialização
Aula 05: Herança – Gil Eduardo de Andrade
O Conceito de Herança
Exemplo de Herança: Método “super()”
Instanciando: objeto da subclasse “Aluno”
Aula 05: Herança – Gil Eduardo de Andrade
Download