Intentando implementar el validador con una clase base abstracta he encontrado el por qué no se puede hacer así.
Haciéndolo con una clase base abstracta, el intérprete de PHP da error si en las clases hijo no coincide la definición del método validate. Es decir,
ésto da error:
Código PHP:
// clase abstracta cValidator
abstract class cValidator
{
abstract public function validate();
} // end interface cValidator
// class CValidatorEmpty
class CValidatorEmpty extends cValidator
{
public function validate($value) { return empty($value); }
} // end class CValidatorEmpty
// class CValidatorPasswordConfirm
class CValidatorPasswordConfirm extends cValidator
{
public function validate($value1, $value2) { return $value1 == $value2; }
} // end class CValidatorPasswordConfirm