Creo que no es así, si declaras un miembro estático (class var nombreCampo / class procedure/function) o abstracto (function/procedure; virtual; abstract
sólo son estáticos o abstractos esos miembros, no toda la clase, ya que tienes que instanciarla para acceder a los demás campos que no son ni estáticos ni abstractos.
En C#, cuando hay una clase estática todos los miembros tienen que ser obligatoriamente estáticos y las clases abstractas no se pueden instanciar a no ser que sea una clase heredada de esta.
Conclusión: Con Delphi > 7 se puede hacer lo mismo, lo que usa nombres diferentes (lo que no entiendo es porqué cuando escribo static se vuelve de color azul, como si fuera keyword).
Gracias