Ads unopar

Disponível somente no TrabalhosFeitos
  • Páginas : 8 (1756 palavras )
  • Download(s) : 0
  • Publicado : 10 de abril de 2013
Ler documento completo
Amostra do texto
Herança e Polimorfismo

Adaptado dos slides do livro:
Java, an Introduction to Problem Solving and Programming, 4ºd Walter Savitch
Cátia Vaz

Introdução à Herança
Herança permite definir uma classe geral e
de seguida classes mais especializadas simplesmente por adicionar novos detalhes à definição da classe mais geral. Uma classe mais especializada herda as propriedades da classe maisgeral, sendo assim necessário apenas definir as novas características desta.
Cátia Vaz

2

Classes Derivadas (Subclasses)
Pessoa

Estudante

Trabalhador

Graduado
Cátia Vaz

3

Exemplo
A classe A classe A classe A classe A classe base (superclasse) Pessoa derivada Estudante Graduado Trabalhador Escola

Cátia Vaz

4

Classe Pessoa
package escola; public class Pessoa{private String nome; public Pessoa(String n){ nome=n; } public String getNome(){ return nome;} public boolean mesmoNome(Pessoa outra){ return this.nome.equals(outra.nome);} public void imprimir(){ System.out.print("nome: "+ nome + "; "); } }

Cátia Vaz

5

Classes Derivadas - Sintaxe
public class Nome_Classe_Derivada extends Nome_Classe _Base{ Declarações_de_variáveis_de_instância_adicionada;Definições_dos_métodos_adicionados_e_sobrepostos; }

Cátia Vaz

6

Classe Estudante
package escola; public class Estudante extends Pessoa{ private int numero; public Estudante(String nom,int num){ super(nom); numero=num;} public int getNumero(){return numero;} public boolean equals(Estudante e){ if(this.mesmoNome(e) && numero==e.numero) {return true;} else {return false;} } public voidimprimir(){ //System.out.println("O nome e" + super.nome); Erro System.out.print("Estudante -> "); super.imprimir(); System.out.println("numero de aluno: "+ numero + "; ");} }

Cátia Vaz

7

Classes Derivadas (Subclasses)
Numa classe derivada, apenas são declaradas as variáveis de instância e definidos os métodos adicionados e os sobrepostos (overridden) As variáveis e os métodos da classebase (superclasse) que não forem declaradas como privadas são herdadas automaticamente.

Cátia Vaz

8

Redefinição de métodos

(Override)
Quando uma classe derivada define um método com o mesmo nome e o mesmo número e tipo de parâmetros do que um método na classe base, o método da classe derivada overrides (sobrepõe) o método na

classe base. Exemplo: public void imprimir()

Cátia Vaz9

Overriding != Overloading
Quando o nome é o mesmo, mas o número ou o tipo de parâmetros difere, seja na classe base ou na classe derivada, diz-se que o método é overloaded (sobrecarregado) na classe derivada.

Cátia Vaz

10

Construtores
O objectivo principal dos construtores da classe base é inicializar as variáveis de instância declaradas na classe base. O objectivo principaldos construtores da classe derivada é invocar um construtor existente na classe base e, seguidamente, inicializar as variáveis de instância declaradas na classe derivada.
Invocação do Construtor da superclasse: super(Valores_para_variaveis_de_instância_d eclaradas_na_classe_base);
Cátia Vaz
11

super
A invocação de um construtor existente na classe base tem de ser a primeira instrução doconstrutor da classe derivada. Quando não existe nenhuma invocação do construtor na classe base, é incluída automaticamente uma invocação ao construtor por omissão da classe base.
Cátia Vaz
12

O método this
Para invocar outro construtor da mesma classe, utiliza-se a palavra chave this. Exemplo: this(initialName, 0) Qualquer utilização do método this tem de ser a primeira instrução do construtorda classe derivada.

Cátia Vaz

13

Invocar um método overridden
super pode ser utilizado para invocar um método da classe base que tenha sido sobreposto (overridden) na classe derivada. Exemplo: super.imprimir();

Cátia Vaz

14

O modificador final
Pode ser evitada a sobreposição (overridding) de um método, adicionando a palavra final na assinatura do método.
Exemplo:public...
tracking img