Utilizamos o conceito de classes abstratas quando queremos determinar que uma classe do nosso domínio possui subclasses que terão o mesmo comportamento (semântica) que ela, para que uma classe seja abstrata ao menos 1 de seus métodos deve ser abstrato.
Exemplificando:
abstract class ContaAbstrata {
private String numero;
private double saldo;
void credito (double valor) {
saldo = saldo + valor;
}
abstract void debito (double valor);
String numero() {return numero;}
double saldo() {return saldo;}
}
Como nossa classe ContaAbstrata possui um método abstrato ela passará a ser abstrata também, com isso forçamos as suas subclasses a implementarem o método debito, então todas as subclasses deverão ter o método debito.
Exemplo.:
class ContaPoupanca extends ContaAbstrata{
private double saldo;
void debito(double valor) {
this.setSaldo(this.getSaldo() - valor);
}
public void setSaldo(double saldo){
this.saldo = saldo;
}
public double getSaldo(){
return this.saldo;
}
}
A abstração se trata de tudo aquilo que não é real como um veículo pois ele pode ser diversar coisas como uma moto, carro, avião, etc... E por esse motivo não criamos instâncias new de objetos de uma classe abstrata, só criamos instâncias de objetos reais como moto, carro, bicicleta e por ai vai.
Nenhum comentário:
Postar um comentário