#343 – Use the new Keyword to Replace a Method in a Base Class
June 10, 2011 Leave a comment
A derived class inherits data and behavior from its parent class.
There are times when you might want to replace a method in a base class with a new method in the derived class, having the same name. You can do this using the new keyword.
Assume a Dog class has a Bark method:
public class Dog
{
public void Bark()
{
Console.WriteLine("Generic dog {0} says Woof", Name);
}
You can provide a new version of this method in a class that derives from Dog, using the new keyword. This new method hides the method in the base class.
public class Terrier : Dog
{
public new void Bark()
{
Console.WriteLine("Terrier {0} is barking", Name);
}
Dog objects will now invoke Dog.Bark and Terrier objects will invoke Terrier.Bark.
Dog kirby = new Dog("Kirby", 15);
kirby.Bark();
Terrier jack = new Terrier("Jack", 17);
jack.Bark();
