Reintroduce/eo
Deutsch · English · Esperanto · Français · Suomi
La modifilo reintroduce apartenas al objektema programado. La modifilo reintroduce lasas metodon de la patra klaso esti kaŝita pere de metodo kun la sama nomo. Tio estas, nova metodo ekzistas en la klaso derivita el la patra klaso kaj en ĉiuj aliaj klasoj derivataj el ĝi. La metodo en la patra klaso estas konservita kaj ankoraŭ povas esti uzata per ĝi.
La metodo de la patra klaso ne plu ekzistas en la nova klaso, ĝi estis anstataŭigata de la nova metodo kun la sama nomo. La metodo daŭras ekzisti en sia originala formo en la patra klaso kaj povas esti uzata per la patra klaso. Tiu ĉi kontraŭas la modifilo override kiu nur funkcias por virtual metodoj. La modifilo reintroduce nur forigas averton ke simila metodo jam ekzistas kaj ke la programisto konscias pri ĝi.
Ekzemple:
interface
type
TParentClass = class
procedure SetTest(intNum: Integer); // Iu metodo
end;
TDerivedClass = class(TParentClass)
procedure SetTest(strName: String); reintroduce; // Tiu ĉi anstataŭas la metodon de la patra klaso en la derivita klaso. Kaj forigas avertojn ke iu metodo kun identa subskribo jam ekzistas.
end;
implementation
procedure TDerivedClass.SetTest(strName: String);
begin
inherited SetTest(1); // Voku metodon kun la sama nomo el patra klaso, se estas bezonata.
end;From the Free Pascal wiki, page "Reintroduce/eo", as it stood on 2021-09-25 after a change by Deadmarshal, out of the wiki's dump of 2024-05-26. Copyright stays with the author who wrote it, according to the old wiki's Licensing page. If you have concerns about this material, message the admin.