title: Whats the utility of public constructors in abstract classes in C#?
body: <p>If a public constructor in an abstract class can only be called by their derived classes it should be functionally equivalent to a protected constructor. Right?</p>
  
  <p>Is there any difference in declaring a public constructor, instead of a protected one, in an abstract class? What would you use it for? Why the compiler doesn't complaint?</p>