Buscar

Prévia do material em texto

- -1
LINGUAGEM DE PROGRAMAÇÃO
HERANÇA
- -2
Olá!
Ao final desta aula, você será capaz de:
1. Apresentar os conceitos de herança;
2. Criar e manipular classes e objetos que se relacionem através de herança;
3. Sobrecarga de métodos;
4. Utilizar interfaces gráficas, interagindo com objetos e classes previamente definidos;
5. Explorar o conceito de herança, sobrecarga de métodos, em exemplos e exercícios.
1 Herança
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.
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.
Abaixo, podemos ver que a classe “Meios de Transportes” é uma classe genérica. Já as classes Terrestres,
representam as características dos Meios de Transportes mais as peculiaridades dos veículos terrestres. Os
meios Aéreos, também são meios de transportes, mas suas peculiaridades são diferentes dos outros tipos de
meios de transportes, assim como os Marítimos.
Meios de Transporte
•
•
•
- -3
2 Terminologias
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.
3 Classe Abstrata
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étodos abstratos.•
- -4
• A classe abstrata não implementa os métodos abstratos.
• As classes derivadas devem implementar os métodos abstratos.
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.
3.1 Notas importantes sobre Métodos e Classes Abstratas
1. Como visto anteriormente, subclasses podem redefinir (sobrepor) um método de sua superclasse.
2. Para Indicar que um método de uma classe deve necessariamente ser redefinido em cada uma de suas
subclasses, devemos usar o modificador abstract.
3. 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).
4. Se uma classe é declarada como abstract, não podem ser criados objetos desta classe.
5. 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.
6. Declarar um método corno abstrato é uma forma de obrigar o programador a redefinir esse método em todas
as subclasses para as quais se deseja criar objetos.
7. Como um método abstrato deve ser redefinido nas subclasses, na superciasse ele não precisa ter
implementação alguma.
Exemplo:
•
•
- -5
Vamos imaginar a seguinte hierarquia de classes:
Onde Chefe, PorComissao, PorItem e PorHora são classes finais.
Todas essas subclasses vão precisar redefinir o método ganha(). Como se tratam de tipos diferentes de
empregado, cada um ganha de uma forma:
Chefe: salário fixo e predefinido
- -6
PorComissao: Valor fixo + comissão* vendas
PorItem: valor por produção * quantidade produzida
- -7
PorHora: valor por hora * total de horas trabalhadas
Declarando o método como abstrato na superclasse, garante-se que nas 4 subclasses haverá a implementação do
método ganha() para cada tipo de empregado (do contrário, objetos destas classes não poderão ser criados).
Para testar esta implementação, precisamos de uma classe para que tenha o main().
- -8
4 Polimorfismo
• É 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).
O que vem na próxima aula
Na próxima aula, você irá estudar os seguintes assuntos:
• Tema: Encapsulamento e Associações;
• Apresentar os conceitos de Encapsulamento e Associações;
• Criar e manipular atributos encapsulados;
• Criação dos métodos Get’s e Set’s;
• Criar e manipular classes e objetos que se relacionem através de Associações.
•
•
•
Fique ligado
Clique no link a seguir para entender melhor: http://estaciodocente.webaula.com.br/cursos
/gon266/docs/05LDP_doc01.pdf
•
•
•
•
•
http://estaciodocente.webaula.com.br/cursos/gon266/docs/05LDP_doc01.pdf
http://estaciodocente.webaula.com.br/cursos/gon266/docs/05LDP_doc01.pdf
- -9
CONCLUSÃO
Nesta aula, você:
• Identificou o conceito de herança em orientação a objetos;
• Criou e manipulou classes e objetos através da herança;
• Utilizou interfaces gráficas, interagindo com objetos e classes, previamente definidos;
• Identificou os conceitos de sobrecarga de métodos;
• Desenvolveu e executou pequenos programas com orientação a objetos.
•
•
•
•
•
	Olá!
	1 Herança
	2 Terminologias
	3 Classe Abstrata
	3.1 Notas importantes sobre Métodos e Classes Abstratas
	4 Polimorfismo
	O que vem na próxima aula
	CONCLUSÃO

Mais conteúdos dessa disciplina