#331 – Calling a Base Class Constructor Implicitly vs. Explicitly
May 24, 2011 Leave a comment
In a derived class, you can call a constructor in the base class explicitly using the base keyword.
public class Terrier : Dog { public string Attitude { get; set; } public Terrier(string name, int age, string attitude) : base(name, age) { Attitude = attitude; }
If you don’t explicitly call a base class constructor, the default (parameterless) constructor is called implicitly.
public Terrier(string name, int age, string attitude) { // Default Dog constructor has already been called // at this point. Name = name; Age = age; Attitude = attitude; }
If you do omit the base keyword, the base class must define a default (parameterless) constructor. If it doesn’t, the compiler will complain that the base class doesn’t have a constructor that takes 0 arguments.