Ferramentas de Usuário

Ferramentas de Site


dev_geral:java:tutorial:041_jpooheranca

Herança

A herança, tal como na vida real, é o processo pelo qual os objectos ganham algumas das características dos seus pais. Embora, tal como na vida real, uma classe deva sempre introduzir comportamento e características próprias, através do mecanismo de herança é possível criar relações entre diferentes classes e reutilizar código. É um mecanismo muito importante em linguagens POO.

Como exemplo podemos pensar numa bicicleta. Se criarmos a classe Bicicleta e definirmos um conjunto base de atributos (cor, tamanhoRoda, tipoTravao) e um conjunto de métodos para o comportamento (travar, pedalar) podemos achar que estes atributos e métodos se aplicam a vários tipos de bicicleta. Uma bicicleta de montanha (BicicletaMontanha) terá os mesmos atributos, podendo acrescentar um novo (tipoSuspensao), e os mesmos métodos, acrescentando também o seu método novo (mudarMudanca). Estas duas bicicletas partilham código.

Se não usarmos herança termos de criar duas classes e implementar na classe Bicicleta os três atributos e os dois métodos, e na classe BicicletaMontanha termos de implementar, novamente, os três atributos mais o atributo novo e os dois métodos, além do método novo. Ora isto para o exemplo até poderia ser rápido mas o exemplo peca pela sua simplicidade, num sistema real a quantidade de objectos e código que se pode repetir é tanta que justifica podermos juntar tudo isto numa relação de herança.

Assim, o que fazemos é criar a classe Bicicleta, definir os três atributos e os dois métodos, e na classe BicicletaMontanha indicar que esta classe herda da anterior. Neste caso, na classe BicicletaMontanha, apenas nos resta implementar um atributo e um método1).

Transformando em código2):

public class Bicicleta {
 
    public String cor;
    public int tamanhoRoda;
    public String tipoTravao;
 
    public void travar() {
    }
 
    public void pedalar() {
    }
}
 
public class BicicletaMontanha extends Bicicleta {
 
    public tipoSuspensao;
 
    public void mudarMudanca() {
    }
}

Navegação

1)
As explicações sobre as classe surgem apenas na página Classes
2)
Neste caso todos os métodos e atributos serão públicos, num caso real isso não seria uma boa opção
dev_geral/java/tutorial/041_jpooheranca.txt · Última modificação em: 2018/05/14 21:37 (edição externa)