I'm sure this question is somewhere else but can't find it.

I have an abstract class that will be the base for other classes. 
 want for the base class to have its base constructor inaccessible, and for the child classes not being able to edit the behavior, forcing them to use another constructor.

```
public abstract class BaseClass
{
    protected int X;
    private BaseClass() { } // Problematic accessor
    public BaseClass(int x)
    {
        X = x;
    }
}

public class Child : BaseClass
{
    public Child(int x)
    {
        X = x + 5;
    }
}

```

If I set the BaseClass() base constructor private it doesn't compile, but if I set it to protected, Child can override it.

**There is a way to block Child modifying the base constructor?**

**EDIT: I want the base constructor to be inaccessible outside the class too.**