## Why is this an issue?

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
        }
    }