Reintroduce/eo
│
Deutsch (de) │
English (en) │
Esperanto (eo) │
suomi (fi) │
français (fr) │
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;