|
Hola,
Quisiera enfatizar que no se trata de entender la diferencia entre override y reintroduce, sino de entender que son conceptos totalmente disímiles e incluso opuestos.
Los métodos virtuales y la directiva override, es el mecanismo que utiliza Delphi para implementar el polimorfismo. Omitir la directiva override, significa romper el polimorfismo, se define un método con el mismo nombre que el de una clase ancestra pero que no tiene nada que ver con aquél.
Dado que hacer esto- romper el polimorfismo -es algo inusual y poco recomendado, el compilador de Delphi nos lo advierte. La directiva reintroduce no tiene ninguna utilidad excepto la informativa: indica al compilador (y a quien lea el código fuente) que eso- romper el polimorfismo -es nuestra intención, que estamos conscientes de la barbaridad que estamos haciendo, que nuestras razones tenemos para ello y que deje de protestar (el compilador y quien lea el código fuente).
El método reintroducido, ciertamente puede usar inherited, pero ya no puedes llamarlo polimórficamente.
// Saludos
|