Que efeito a palavra-chave “new” tem em C # e por que é apenas um aviso quando não está empregado?

Considere o seguinte código:

public abstract class Test1
{
    public object Data { get; set; }
}

public abstract class Test2<T> : Test1
{
    public T Data { get; set; }
}

Isso gerará o seguinte aviso:

'Test2.Data' oculta membro herdado 'Test1.Data'. Use a nova palavra-chave se a ocultação foi planejada.

Por que isso é apenas um aviso e qual será o efeito da adição da "nova" palavra-chave?

De acordo com o meu teste, não consigo encontrar nenhuma diferença quando a palavra-chave "new" é adicionada.

Não me entenda mal, sou todo para ser explícito, mas fiquei curioso quanto ao benefício de adicionar "novo".

Meus únicos pensamentos sobre o que pode ser são:

Melhor legibilidade humanaAlguns salvando em tempo de execução quando o compilador não é deixado para descobrir o inevitável o caminho mais longo

questionAnswers(4)

yourAnswerToTheQuestion