public interface ISuperAnimal : IAnimal
string ManifestSuperPower();
public class SuperDog : ISuperAnimal, IAnimal
public string MakeSound()
public string ManifestSuperPower()
return "pooping gold...";
public class SuperCat : ISuperAnimal, IAnimal
string IAnimal.MakeSound()
return "IAnimal.MakeSound() Meow";
public string MakeSound()
return "SuperCat.MakeSound() meow";
public string ManifestSuperPower()
return "farthing rainbow..";
public static void Main()
SuperDog dog = new SuperDog();
ISuperAnimal superDog = dog;
Console.WriteLine("dog.MakeSound(): " + dog.MakeSound());
Console.WriteLine("superDog.MakeSound(): " + superDog.MakeSound());
Console.WriteLine("dogAnimal.MakeSound(): " + dogAnimal.MakeSound());
SuperCat cat = new SuperCat();
ISuperAnimal superCatAnimal = cat;
Console.WriteLine("cat.MakeSound(): " + cat.MakeSound());
Console.WriteLine("superCatAnimal.MakeSound(): " + superCatAnimal.MakeSound());
Console.WriteLine("animal.MakeSound(): " + catAnimal.MakeSound());