#683 – Two Ways an Object Can Behave Polymorphically

There are a couple of different ways that an object can behave polymorphically.  Here are two examples.

Polymorphic behavior #1 – access instance of subclass using reference to base class.

    public class Dog
    {
        public virtual void Bark()
        {
            Console.WriteLine("Dog: Woof");
        }
    }

    public class Terrier : Dog
    {
        public override void Bark()
        {
            Console.WriteLine("Terrier: Yip yip");
        }
    }
            // Terrier method called through Dog reference
            Dog d = new Terrier();
            d.Bark();

Polymorphic behavior #2 – Base class calls method that is overridden in derived class

        // Dog.GuardUs
        public void GuardUs()
        {
            Bark();
        }
            Terrier t = new Terrier();
            t.GuardUs();

Advertisements