Since ``++abstract++`` classes can't be instantiated, there's no point in their having ``++public++`` or ``++internal++`` constructors. If there is basic initialization logic that should run when an extending class instance is created, you can by all means put it in a constructor, but make that constructor ``++private++`` or ``++protected++``. == Noncompliant Code Example ---- abstract class Base { public Base() // Noncompliant, should be private or protected { //... } } ---- == Compliant Solution ---- abstract class Base { protected Base() { //... } } ---- ifdef::env-github,rspecator-view[] ''' == Implementation Specification (visible only on this page) include::message.adoc[] include::highlighting.adoc[] ''' == Comments And Links (visible only on this page) include::comments-and-links.adoc[] endif::env-github,rspecator-view[]