Disculpa que no te pueda responder todas tus dudas, lo que pasa es que ahora te estoy respondiendo en el trabajo; en casa no tengo mucho tiempo, ahora tengo epoca de paricales (estudio abogacia), y eso me saca mucho tiempo, y poder de concentracion.
Al final, te dejo un link de un libro excelentisimo sobre POO, está en español y es una edicion gratuita, por lo que no estarias rompiendo ninguna licencia.
Por sierto, ahora tampoco te fies mucho de lo que digo, comproba lo que te digo, en el libro que te cito abajo.
a.- Si pudieran aclararme por favor, en la Pag.1 la Procedure Inicializar, no es un método virtual como veo, entonces ¿como debo entender ese método en las clases hijas? ya que llevan diferentes parámetros y una implementación interesante.
Lo que hace, es llamar al metodo Inicializar de la Classe Padre, es decir:
inherited Inicializar(p1, p2, p3...);
Seria algo así como
ClassePadre.Inicializar(p1, p2, p3...);
Fijate que en el ejemplo no se usa override!!!!!
Si usara
TClaseHija = class(TClasePadre)
public
procedure Metodo(parametro identicos a los de clase Padre); override;
Ahi si qeu tendrian que ser los mismo parametros.
c.- En el otro ejemplo, Pag.3 y Pag.5 el CONSTRUCTOR Create tiene diferentes parámetros tanto la Clase Madre como la hija, ¿esto se puede?
Se puede, siempre y cuando no uses override.
d.- Cual es la forma más óptima de trabajar, utilizar Polimorfismo o Sobrecargado?
Los metodos virtuales, y la cobrecarga de metodos es parte del Polimorfismo.
El polimorfismo es una metodologia dentro de POO para posibilitar tener clases y metodos que se adapten al codigo.
Te recomiendo leer
LA CARA OCULTA DE DELPHI 4Es un libro excelente sobre POO en Delphi.