{$codepage utf8} {$mode objfpc} Type TClase01=Class Procedure Escribe; End; TClase02=Class(TClase01) Procedure Escribe; Procedure Escribe(cad:string); End; TClase03=Class(TClase02) Procedure Escribe; End; Procedure TClase01.Escribe; Begin Writeln('Base 01') End; Procedure TClase02.Escribe; Begin Writeln('Base 02') End; Procedure TClase02.Escribe(cad:string); Begin Writeln('Base 02 ',cad) End; Procedure TClase03.Escribe; Begin inherited; //Llama al inmediato con el mismo nombre inherited Escribe('hola'); //Llama al sobrecargado Writeln('Base 03') End; Var B01:TClase01; B02:TClase02; B03:TClase03; Begin B01:=TClase01.create; B02:=TClase02.create; B03:=TClase03.create; Writeln('---1---'); B01.Escribe; Writeln('---1---'); Writeln('---2---'); B02.Escribe; Writeln('---2---'); Writeln('---3---'); B03.Escribe; Writeln('---3---') End.