Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Atribuindo uma conta a uma interface?

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?

2 respostas
solução!

Está dizendo que "t" recebe qualquer objeto que implemente a Interface ITributavel. Como sabemos que todos os objetos que implemente a interface ITributavel devem obrigatoriamente ter o método CalculaTributo(), podemos chama-los, "t" é um polimorfo.

Ok, obrigado!