public void TestGenusForDynamicBinding() { var taxonomy = new Taxonomy(); var lion = new Lion(); Assert.AreEqual("Lion genus is Panthera", taxonomy.GenusFor(lion)); var zebra = new Zebra(); Assert.AreEqual("Zebra genus is Equus", taxonomy.GenusFor(zebra)); var elephant = new Elephant(); Assert.AreEqual("Elephant genus is Loxodonta", taxonomy.GenusFor(elephant)); // The public Taxonomy.GenusFor method delegates to the best version of the private Taxonomy.GenusFor methods // the responsibility to tell the genus for the given IAnimal. // This shows how dynamic method binding works. }
private string GenusFor(Zebra zebra) { return "Zebra genus is " + zebra.GenusName; }