#348 – Virtual Methods Support Polymorphism

In C#, polymorphism is implemented using virtual methods.  A virtual method has an implementation in the base class that can be overridden in a derived class.  When the method is invoked on an object of the base class’ type, the specific method to be called is determined at run-time based on the type of the underlying object.

A virtual method is defined in the base class using the virtual keyword.

    public class Dog
    {
        public virtual void Bark()
        {
            Console.WriteLine("Generic dog {0} says Woof", Name);
        }
    }

A virtual method is overridden in a derived class using the override keyword.

    public class Terrier : Dog
    {
        public override void Bark()
        {
            Console.WriteLine("Terrier {0} is barking", Name);
        }
    }

This allows polymorphic behavior when invoking the Bark method.

            Dog jack = new Terrier("Jack", 15);
            jack.Bark();       // Terrier.Bark called, rather than Dog.Bark
Advertisements

About Sean
Software developer in the Twin Cities area, passionate about .NET technologies. Equally passionate about my own personal projects related to family history and preservation of family stories and photos.

2 Responses to #348 – Virtual Methods Support Polymorphism

  1. Pingback: #618 – Use the base Keyword to Call A Method in the Base Class « 2,000 Things You Should Know About C#

  2. Pingback: #770 – Use Intellisense to Get List of Methods to Override « 2,000 Things You Should Know About C#

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: