Classes abstratas
Classes abstratas são classes que têm zero ou mais métodos abstratos.
Métodos abstratos são métodos sem implementação, ou seja, sem código, e cuja implementação é feita por uma subclasse da classe abstrata.
Um classe é definida como abstrata com a palavra reservada abstract.
Um método é declarado abstrato igualmente com a palavra reservada abstract e sem qualquer implementação de código:
public abstract class Veiculo {
public abstract void acelera();
public void trava(){
System.out.println("Trava");
}
}
A classe Veiculo foi declarada abstrata e tem dois métodos : o método abstrato acelera() e o método trava() que não é abstrato.
Como se pode ver pelo que foi dito na secção Polimorfismo de Herança, as classes abstratas forem pensadas para implementar o Polimorfismo de Herança.
O método abstrato acelera() será implementado por uma subclasse de Veiculo:
public class Carro extends Veiculo{
public void acelera(){
System.out.println("Carro Acelera");
}
}
Características das classes abstratas:
- Uma classe abstrata pode ter zero ou mais métodos abstratos, assim como métodos concretos.
- Se uma classe tiver pelo menos um método abstrato ela deve ser declarada abstrata.
- Uma classe abstrata não pode ser instanciada.
- Para usarmos uma classe abstrata teremos de criar uma subclasse dela que implemente todos os seus métodos abstratos.
- Uma subclasse de uma classe abstrata tem de implementar todos os métodos abstratos da classe abstrata ou ser declarada abstrata igualmente.
- Uma classe abstrata pode ter métodos concretos, propriedades, getters e setters e construtores.
