Pode-se dizer que quando uma classe implementa uma interface ela passa a ser do mesmo tipo que a interface?
No caso do exercício, no construtor da classe BalancoEmpresa abaixo, o parâmetro de chamada é do tipo ArmazenadorDeDividas.
public class BalancoEmpresa {
private ArmazenadorDeDividas dividas;
public BalancoEmpresa(ArmazenadorDeDividas dividas){
this.dividas = dividas;
}
Fique um pouco confuso porque na classe de teste abaixo não utilizei a interface e sim a classe que a implementa, no caso BancoDeDados. É isso mesmo?
public class TestaBanco {
public static void main(String[] args) {
BancoDeDados minhaConexao = new BancoDeDados("endereço","usuario","senha");
BalancoEmpresa be = new BalancoEmpresa(minhaConexao);
Documento cnpjCredor = new Cnpj("00.000.001/0001-01");
Divida divida = new Divida();
divida.setDocumentoCredor(cnpjCredor);
divida.setCredor("Credor");
divida.setTotal(3200);
be.registraDivida(divida);
Pagamento pagamento1 = new Pagamento();
pagamento1.setValor(200);
divida.registra(pagamento1);
be.pagaDivida(divida.getDocumentoCredor(), pagamento1);
minhaConexao.desconecta();
}
}