title: Whats the difference between abstract and protected in my scenario - C#
body: <p>What is the difference between a public abstract class with a public constructor, and a public class with a protected constructor.  We don't have any functions that are abstract in our abstract class, but we want programmers to only be capable of creating objects that extend that class.</p>
  
  <p>Both scenarios compile and work, however I don't understand which would be better to use in what scenario.  I have been brought up to understand that although you cannot instantiate an abstract class directly (only through a non abstract child class), the abstract class should normally contain abstract functions that are required to be implemented by the children of that class.</p>
  
  <p>Wouldn't having a protected constructor in a public class signify that instantiation of this class is not possible (this is the only constructor we have).</p>