What is protected virtual new
protected
means that it is visible only inside this class and classes derived from it.
virtual
means that it can be overriden in derived classes.
new
means that here you create new overriding hierarchy, i.e. you stop overriding the method defined in the base class and replace it with this method.
More details can be found here
new
is used for member hiding.
Unlike an overridden method, a new
method will not be called by a reference to the base class.
See the documentation.