terça-feira, 27 de janeiro de 2009

Classes Abstratas

Dando continuidade ao último post, vamos continuar falando de Orientação a Objetos.
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