Hola
Poyo. Como siempre un gusto.
Al menos hasta Delphi 7, el compilador no permite la declaración de constantes de clase.
Comparto la opinión de
Marcelo.
Entiendo que las constantes de clase sirven para encapsular, dentro de una clase, valores fijos que pueden ser resueltos en tiempo de compilación (una manera de definir el concepto
constante) y que habrán de ser utilizados principalmente por los métodos de esa clase.
Claro, para alguna rutina exterior también podrían ser útiles, pero veo que esperabas que tuvieran el mismo efecto
dinámico de los métodos virtuales. No estoy seguro de que eso deba ser así, pues el comportamiento normal de un método es estático, ¿entonces por qué el comportamiento normal de una constante de clase debería ser
virtual?
Creo que la solución que buscas debería hacerse con métodos clase virtuales.
Aunque claro, sería estupendo que el compilador aceptara esta forma alternativa de declarar métodos:
Código Delphi
[-]
TPlaneta = class(TObject)
public
Class Function Gravedad : Double = 0; Virtual;
end;
TTierra = class(TPlaneta)
public
Class Function Gravedad : Double = 9.81; Override;
end;
(sin mayor implementación de los mismos).
De momento, escribir la implementación con
Begin y
End tampoco significa un gran esfuerzo.
Saludos.
Al González.