Uploaded image for project: 'Rules Repository'
  1. Rules Repository
  2. RSPEC-5993

Constructors of an "abstract" class should not be declared "public"

    XMLWordPrintable

    Details

    • Type: Code Smell Detection
    • Status: Active
    • Resolution: Unresolved
    • Labels:
    • Message:
      Hide
      * Primary message: Change the visibility of this constructor to "protected".
      * Secondary message: This class is "abstract".
      Show
      * Primary message: Change the visibility of this constructor to "protected". * Secondary message: This class is "abstract".
    • Highlighting:
      • primary location: the public modifier
      • secondary location: the abstract keyword
    • List of parameters:
    • Default Severity:
      Major
    • Impact:
      Low
    • Likelihood:
      High
    • Default Quality Profiles:
      Sonar way
    • Covered Languages:
      Java
    • Remediation Function:
      Constant/Issue
    • Constant Cost:
      2min
    • Analysis Level:
      Syntactic Analysis
    • Analysis Scope:
      Main Sources

      Description

      Abstract classes should not have public constructors. Constructors of abstract classes can only be called in constructors of their subclasses. So there is no point in making them public. The protected modifier should be enough.

      Noncompliant Code Example

      public abstract class AbstractClass1 {
          public AbstractClass1 () { // Noncompliant, has public modifier
              // do something here
          }
      }
      

      Compliant Solution

      public abstract class AbstractClass2 {
          protected AbstractClass2 () {
              // do something here
          }
      }
      

        Attachments

          Issue Links

            Activity

              People

              Assignee:
              Unassigned Unassigned
              Reporter:
              margarita.nedzelska Margarita Nedzelska
              Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

                Dates

                Created:
                Updated: