Dlaczego nie nazywać metod nadpisywalnych w konstruktorach?

Jest to zbyt uproszczony przykład, ale mam pewien rzeczywisty kod, który koncepcyjnie robi to samo (próba walidacji wartości „ustaw” metod dostępu do klas pochodnych), a analizator daje mi „Nie wywołuj metod nadpisywalnych w konstruktorach”. Próbuję dowiedzieć się, czy powinienem zmienić kod, czy zignorować ostrzeżenie. Nie mogę wymyślić żadnego powodu, dla którego powinienem słuchać ostrzeżenia.

public abstract class SimpleUrl
{
    protected string _url;
    public abstract string Url { get; set; }
    public SimpleUrl()
    { }
    public SimpleUrl(string Url)
    {
        this.Url = Url;
    }
}

public class HttpUrl : SimpleUrl
{
    public HttpUrl()
    { }
    public HttpUrl(string Url)
    {
        this.Url = Url;
    }
    public override string Url
    {
        get
        {
            return this._url;
        }
        set
        {
            if (value.StartsWith("http://"))
                this._url = value;
            else
                throw new ArgumentException();
        }
    }
}

questionAnswers(3)

yourAnswerToTheQuestion