Buscar

Herança e Polimorfismo em Java

Prévia do material em texto

Linguagem de Programação
Fabiano Gonçalves dos Santos
Aula 5
*
Conteúdo
Apresentar os conceitos de herança
Criar e manipular classes e objetos que se relacionam por meio de herança
Sobrecarga de métodos
Usar interfaces gráficas interagindo com objetos e classes 
*
*
*
Significa a capacidade de incorporar as características e as funcionalidades de uma classe. Assim como a herança de todas as operações e dados, você pode especializar métodos da super classe e especificar novas operações e dados, para refinar, especializar, substituir ou estender a funcionalidade da classe progenitora.
Herança
*
*
*
Uma classe define um conjunto de dados – Atributos – e um conjunto de métodos 
Todos os objetos de uma classe mantêm o mesmo conjunto de atributos e métodos. 
Através do mecanismo de herança, tendo definido uma classe base é possível criar classes derivadas que: 
herdam os atributos e métodos da classe base 
definem novos atributos e métodos 
podem redefinir os métodos herdados
Herança
*
*
*
Herança
*
*
*
Estender – Criar uma nova classe que herda todo o conteúdo da classe existente.
Superclasse – Uma classe progenitora ou base.
Subclasse – Uma classe filha que herda ou estende uma superclasse
Vocabulário
*
*
*
Uma classe abstrata em Java define atributos e métodos. 
Numa classe abstrata, um método pode ser definido com o modificador “abstract”. Nesse caso: 
A classe abstrata não implementa os método abstratos. 
As classes derivadas devem implementar os métodos abstratos. 
Classe Abstrata
*
*
*
Uma classe abstrata é utilizada quando deseja-se fornecer uma interface comum a diversos membros de uma hierarquia de classes. Os métodos declarados na classe abstrata serão implementados em suas subclasses, através de polimorfismo.
Imagine uma classe que no seu sistema, a uma funcionalidade existente em todas as subclasses quer ser apresentada na superclasse. Este método é definido na superclasse como Abstract. Nas subclasses, estes métodos serão implementados, cada um com a sua peculiaridade.
Classe Abstrata
*
*
*
Como visto anteriormente, subclasses podem redefinir (sobrepor) um método de sua superclasse. 
Para indicar que um método de uma classe deve necessariamente ser redefinido em cada uma de suas subclasses devemos usar o modificador abstract. 
Uma classe que contém um ou mais métodos abstratos deve ser declarada explicitamente como abstrata. Essa classe, no entanto, pode ter construtores e métodos concretos (não-abstratos). 
Se uma classe é declarada como abstract, não podem ser criados objetos desta classe. 
Importante!
*
*
*
Se uma subclasse é derivada de uma superclasse que contém um método abstrato e se esse método abstrato não for redefinido na subclasse, esse método permanece abstract na subclasse. Com isso, a subclasse deverá ser declarada explicitamente como abstract. 
Declarar um método como abstrato é uma forma de obrigar o programador a redefinir esse método em todas as subclasses para as quais se deseja criar objetos. 
Como um método abstrato deve ser redefinido nas subclasses, na superclasse ele não precisa ter implementação alguma.
Importante!
*
*
*
Exemplos
Classe Empregado
Arquivo: Empregado.java
Classe e métodos abstratos
*
*
*
Chefe: salário fixo e predefinido;
Comissionado: valor fixo + comissão * vendas;
PorItem: valor por produção * quantidade produzida;
Horista: valor por hora * total de horas trabalhadas.
Exemplo de Hierarquia
*
*
*
Classe Chefe
Arquivo: Chefe.java
*
*
*
Classe Comissionado
Arquivo: Comissionado.java
*
*
*
Classe PorItem
Arquivo: PorItem.java
*
*
*
Classe Horista
Arquivo: Horista.java
*
*
*
Teste
*
*
*
Teste
*
*
*
É a capacidade que os métodos de mesmo nome têm de efetuarem tarefas diferentes.
O mesmo método com várias formas.
Acontece de duas maneiras em Java: quando os métodos são definidos em função da classe que os utiliza (sobreposição) ou dos diferentes conjuntos de argumentos definidos para cada método (sobrecarga).
Uso do this
Chamada para outro construtor da mesma classe. É um excelente artifício para combinar código dos construtores.
Polimorfismo
*
*
*
Exemplo
*
*
*
Exemplo
*
Linguagem de Programação
Fabiano Gonçalves dos Santos
Atividade 5
*
Exercício
Faça um programa com uma interface gráfica para criar o objeto Cliente
Faça outro programa com outra interface gráfica para criar o ClienteOuro
Para ambos exercícios utilize o Jframe para construir as interfaces.
Crie as classes isoladamente em arquivos separados.
*
*
*
*
*
*
*
*
	
AULA 1
*
AULA 1
	
AULA 1
*
AULA 1
	
AULA 1
*
AULA 1
	
AULA 1
*
AULA 1
	
AULA 1
*
AULA 1
	
AULA 1
*
AULA 1
	
AULA 1
*
AULA 1
	
AULA 1
*
AULA 1
	
AULA 1
*
AULA 1
	
AULA 1
*
AULA 1
	
AULA 1
*
AULA 1
	
AULA 1
*
AULA 1
	
AULA 1
*
AULA 1
	
AULA 1
*
AULA 1
	
AULA 1
*
AULA 1
	
AULA 1
*
AULA 1
	
AULA 1
*
AULA 1

Continue navegando