Difference between revisions of "Reintroduce/eo"
Deadmarshal (talk | contribs) m |
Deadmarshal (talk | contribs) m |
||
Line 3: | Line 3: | ||
La [[modifier|modifilo]] <syntaxhighlight lang="pascal" inline> reintroduce </syntaxhighlight> apartenas al [[object-oriented programming|objektema programado]]. La modifilo <syntaxhighlight lang="pascal" inline> reintroduce </syntaxhighlight> lasas metodon de la patra [[Class|klaso]] esti kaŝita pere de [[Method|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 [[modifier|modifilo]] <syntaxhighlight lang="pascal" inline> reintroduce </syntaxhighlight> apartenas al [[object-oriented programming|objektema programado]]. La modifilo <syntaxhighlight lang="pascal" inline> reintroduce </syntaxhighlight> lasas metodon de la patra [[Class|klaso]] esti kaŝita pere de [[Method|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 [[modifier|modifilo]] < | + | 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 [[modifier|modifilo]] <syntaxhighlight lang="pascal" inline> override </syntaxhighlight> kiu nur funkcias por <syntaxhighlight lang="pascal" inline> virtual </syntaxhighlight> metodoj. La [[modifier|modifilo]] reintroduce nur forigas averton ke simila metodo jam ekzistas kaj ke la programisto konscias pri ĝi. |
Ekzemple: | Ekzemple: |
Latest revision as of 08:46, 25 September 2021
│
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;