Reintroduce/eo: what changed
Revision 0 to 1. Removed lines have a minus sign; added lines have a plus sign.
Title: Reintroduce/eo
| Old | New | Line | |
|---|---|---|---|
| 1 | + | La [[modifier|modifilo]] `reintroduce` apartenas al [[object-oriented programming|objektema programado]]. La modifilo `reintroduce` 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. | |
| 2 | + | ||
| 3 | + | 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]] `override` kiu nur funkcias por `virtual` metodoj. La [[modifier|modifilo]] reintroduce nur forigas averton ke simila metodo jam ekzistas kaj ke la programisto konscias pri ĝi. | |
| 4 | + | ||
| 5 | + | Ekzemple: | |
| 6 | + | ||
| 7 | + | ``` pascal | |
| 8 | + | interface | |
| 9 | + | ||
| 10 | + | type | |
| 11 | + | TParentClass = class | |
| 12 | + | procedure SetTest(intNum: Integer); // Iu metodo | |
| 13 | + | end; | |
| 14 | + | ||
| 15 | + | TDerivedClass = class(TParentClass) | |
| 16 | + | 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. | |
| 17 | + | end; | |
| 18 | + | ||
| 19 | + | implementation | |
| 20 | + | ||
| 21 | + | procedure TDerivedClass.SetTest(strName: String); | |
| 22 | + | begin | |
| 23 | + | inherited SetTest(1); // Voku metodon kun la sama nomo el patra klaso, se estas bezonata. | |
| 24 | + | end; | |
| 25 | + | ``` | |
| 26 | + | ||
| 27 | + | --- | |
| 28 | + | *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](/wiki-contact).* |
