Olá pessoal eu estava pensando no exemplo de contas...supondo que eu tenha as classes ContaCorrente e ContaPoupanca . Elas possuem um comportamento parecido: saca, deposita, transfere.
Poderia criar então uma interface ContaBancaria mais ou menos nesses moldes:
public interface ContaBancaria {
public void saca(double valor);
public void deposita(double valor);
public void transfere(double valor, ContaBancaria outraConta);
}
Mas ai eu decidi criar uma classe chamada ContaRefeicao, por exemplo. A classe ContaRefeicao não deixa eu transferir valor para outra conta, logo eu não poderia mais usar a interface ContaBancaria. Qual seria a melhor maneira para resolver essa situação?
Até pensei em criar uma outra interface(Conta, por exemplo) que não possua o método transfere:
public interface Conta {
public void saca(double valor);
public void deposita(double valor);
}
e ai as classes ficariam com algo parecido com isso:
public class ContaCorrente implements Conta, ContaBancaria {
@Override
public void deposita(double valor) {
// TODO Auto-generated method stub
}
@Override
public void transfere(double valor, ContaBancaria outraConta) {
// TODO Auto-generated method stub
}
@Override
public void saca(double valor) {
// TODO Auto-generated method stub
}
}
public class ValeRefeicao implements Conta {
@Override
public void saca(double valor) {
// TODO Auto-generated method stub
}
@Override
public void deposita(double valor) {
// TODO Auto-generated method stub
}
}
Essa seria uma solução válida? Existe alguma melhor?
Desde já agradeço.