Analisando o código abaixo:
interface ITributavel { double CalculaTributo(); }
class ContaInvestimento : Conta, ITributavel { public double CalculaTributo() { return this.Saldo * 0.02; } }
ContaInvestimento c = new ContaInvestimento(); ITributavel t = c; c.Deposita(100.0); MessageBox.Show("tributo = " + t.CalculaTributo());
Eu entendi que a interface possibilita que um classe implemente os métodos da própria interface. Até aí tudo normal. O código abaixo tem a linha: ITributavel t = c; Isso está dizendo que uma interface recebe uma classe? e a mensagem: t.CalculaTributo() não seria c.CalculaTributo() já que a implementação deste médoto está na ContaInvestimento sendo a classe que implementou a interface? Como inserir uma contaInvestimento em uma inteface e ainda executar métodos implementados em outra classe nela?