Поскольку вы все еще можете делать следующее:
public class SomeChildClass : SomeClass
{
public SomeChildClass(string label) : base(label){ }
public string GetLabel() { return _label; }
}
Как видите, дочерний класс может вызывать базовый конструктор (в абстрактном классе) для создания своего экземпляра.
Однако, как сказал Джон, public
действительно не нужно. Фактически это то же самое, что и protected
.