Ich bin mir nicht sicher, ob Sie die Klasse als abstrakt einstufen sollten, wenn es keine abstrakten Methoden gibt. Wenn sie eine vollständige Implementierung der Funktionalität hat, die von den von ihr abgeleiteten Klassen erwartet wird, warum sollte sie dann nicht instanziiert und so verwendet werden können? Wenn dies nur ein Weg ist, um die Funktionalität über eine Reihe von Klassen zu teilen, dann ist ein kompositionsbasierter Entwurf vielleicht angemessener, d.h. jede "abgeleitete" Klasse muss auf diese Klasse verweisen, anstatt von ihr abzuleiten.
Haben Sie ein bestimmtes Szenario im Kopf, für das sich dieses Design eignen würde?
Editar
Das einzige Szenario, das ich gefunden habe, wo eine abstrakte Klasse ohne abstrakte Methoden Sinn macht, ist, wenn die abstrakte Klasse teilweise eine Schnittstelle implementiert. Die abgeleiteten Klassen sind erforderlich, um die Implementierung zu vervollständigen.
Link zum Beispiel (edit: Seite verschwunden, Dieser Blogbeitrag scheint eine Kopie des Inhalts zu sein)