Salve, ho due classi così definite

codice:
public class C : A, I { }

public class D : B, I { }
dove C, B e A sono classi semplici e I è un'interfaccia.

In un'altra classe ho due metodi
codice:
public void pippo(A a);

public void pluto(B b);

Se istanzio un oggetto di tipo I

codice:
I i = new C();

oppure

I i = new D();
come posso invocare pippo o pluto passando quest'oggetto risolvendo dinamicamente il tipo di istanza?