What is the use of these constructors?

What is the use of these constructors?

I have wondered: Abstract classes may contain constructors. But, when we cannot instantiate the abstract classes, what is the use of these constructors? - N.K.

    Requires Free Membership to View

    When you register, you'll begin receiving targeted emails from my team of award-winning writers. Our goal is to provide a unique online resource for developers, architects and development managers tasked with building and maintaining enterprise applications using Visual Basic, C# and the Microsoft .NET platform.

    Hannah Smalltree, Editorial Director

    By submitting your registration information to SearchWinDevelopment.com you agree to receive email communications from TechTarget and TechTarget partners. We encourage you to read our Privacy Policy which contains important disclosures about how we collect and use your registration and other information. If you reside outside of the United States, by submitting this registration information you consent to having your personal data transferred to and processed in the United States. Your use of SearchWinDevelopment.com is governed by our Terms of Use. You may contact us at webmaster@TechTarget.com.

Those constructors usually are protected and never public. Actually, that's something that the FxCop tool (www.gotdotnet.com/team/fxcop/) will enforce in your assemblies - if you are not using that tool, you should consider it right away. It enforces best practices across your code.

So, the constructor serves the purpose of initializing whatever is needed on the base abstract class, whenever a descendant class is created. Note that if the abstract class offers only a single version of the constructor – say, receiving a parameter, or not receiving a parameter – it HAS to be called by the descendant class. In the case of a 'parameterless' constructor, this happens automatically whenever the derived class is constructed.

This was first published in April 2005