You can make a constructor private to restrict creation of an instance of the class only to code within the class.
If all constructors in a class are private, this means that a derived class is also prevented from calling a constructor. Because the derived class must be able to call some constructor on the parent class, this will effectively prevent the creation of any derived class.
Assume that a Dog class defines a single constructor and makes it private. In the code shown below, the Terrier class defines a constructor, which would implicitly call the default constructor in the base class. Because that constructor is private, we get a compiler error and can’t create the Terrier class.
1 2 3 4 5 6 7 8 9 10 11 | public class Terrier : Dog{ public double FeistyFactor { get; set; } public Terrier(string name, int age, double feistyFactor) { Name = name; Age = age; FeistyFactor = feistyFactor; }} |

