Für die abstract
auf der Klasse irgendeine Bedeutung hat, muss sie abstrakte Mitglieder haben, die implementiert werden müssen, andernfalls ist sie überflüssig (es sei denn, Sie beabsichtigen, die Instanziierung zu verhindern) und Sie sollten sie entfernen.
Es könnte eine abstrakte Eigenschaft haben, die ein Erbe deklarieren muss, etwa so
public abstract int ID { get; }
oder eine Methode, die es implementieren muss:
public abstract void DoSomething();
Sie würden sie verwenden, wenn die Klasse selbst nie instanziiert werden soll, Sie aber mehr als eine Schnittstelle benötigen, z. B. Basiseigenschaften, und Sie sie später verwenden wollen:
((MyAbstractClass)obj).DoSomething(); //All inheritors implemented this