#330 – Derived Classes Do Not Inherit Constructors
May 23, 2011 Leave a comment
A derived class inherits all of the members of a base class except for its constructors.
You must define a constructor in a derived class unless the base class has defined a default (parameterless) constructor. If you don’t define a constructor in the derived class, the default constructor in the base class is called implicitly.
When you define a constructor in a derived class, you can call a constructor in the base class by using the base keyword.
Here’s an example:
public class Dog
{
public string Name { get; set; }
public int Age { get; set; }
public Dog(string name, int age)
{
Name = name;
Age = age;
}
}
public class Terrier : Dog
{
public string Attitude { get; set; }
// Call the Name/Age constructor in the base class
public Terrier(string name, int age, string attitude)
: base(name, age)
{
Attitude = attitude;
}
}