Instanciar classe abstrata em método no C# igual no Java

O problema que estou tendo é um tanto quanto esquisito, preciso disso em C#:

Classe MethodStrategy

public abstract class MethodStrategy {
    public abstract void strategy();
}

Classe Teste
public class Test {
   public void test(MethodStrategy methodStrategy) {
       Thread thr = new Thread(() -> {
           methodStrategy.strategy();
       });
       thr.start();
   }
}

Classe Test2
public class Test2 {
    public Test2() {
        Test t = new Test();
        t.test(new MethodStrategy() {
            @Override
            public void strategy() {
                //TODO
            } 
        });
    }
}

Este sistema funciona perfeitamente em Java queria saber se tem uma forma de fazer isso em C#.

Se você quer passar uma classe abstrata com apenas um método, como no exemplo que deu, aconselho a usar um delegate. Tem alguns exemplos aqui: https://pt.stackoverflow.com/questions/2822/o-que-são-lambda-expressions-e-qual-a-sacada-em-usá-las

Com isso, você nao precisa criar uma classe, pode passar a um MethodStrategy como uma lambda.

Agora, se sua classe tiver mais de um método, daí recomendaria criar uma classe mesmo herdando dela, ficaria mais claro, imagino.