Protsesside selgus tarkvaraarenduses muutub üha olulisemaks, eriti objektorienteeritud programmeerimise puhul. Selle programmeerimise viisi keskne aspekt on polümorfism. Sügavama arusaamisega sinu rakendusloogikast saad luua paindlikumaid ja hooldatavamaid programme. Sukeldugem koos polümorfismi maailma ja kogegem kontseptsioone praktiliste näidete kaudu.
Olulisemad järeldused
Polümorfism võimaldab objektidel esineda erinevates vormides. See saavutatakse meetodite ülekirjutamise ja ülelaadimise kaudu. Peamised kontseptsioonid sisaldavad:
- vaiksete meetodite kasutamine baasklassides
- „override“ rakendamine alamklassides
- objektide türbimiseks mõeldud kontseptsioon
- funktsionaalsuste laiendamine uute funktsioonide lihtsa lisamise kaudu
Sammsammuline juhend
Samm 1: Polümorfismi tutvustamine
Et mõista polümorfismi C#-s understand, vaatame esmalt aluskonsepti. Mõisted pärineb kreekakeelsest sõnast, mis tähendab "palju vormi". Objektorienteeritud programmeerimises on tegemist sellega, et meetod baasklassis saab olla ülekirjutatud ja ülelaaditud alamklassides. See võimaldab sul kasutada ühiseid liideseid, samal ajal kui sa määratled rakenduse uuesti.

Samm 2: Struktuuri loomine
Alusta põhilise struktuuri loomist, mis määratleb baasklass. Antud juhul kasutame klassi nimega Auto. See klass peaks samuti sisaldama meetodit, mida nimetatakse „TÜV“. Meetod kuulutatakse baasklassis, kuid ei ole veel rakendatud.

Samm 3: Alamklasside määratlemine
Nüüd saad luua alamklassid PKW ja LKW. Iga alamklass peaks laiendama baasklassi Auto. Nendes klassides rakendad meetodit TÜV võtmesõnaga override. See kohandab baasklassi meetodit nii, et igal alamklassil on oma spetsiifiline loogika.

Samm 4: Virtuaalse meetodi rakendamine
Enne TÜV meetodi ülekirjutamist alamklassides tuleb baasklassides määratleda võtmesõna virtual. See annab teada, et tema meetodit saab ülekirjutada.
Samm 5: Objectide loendi loomine
Et polümorfismi edasi uurida, loo loend, mis saab salvestada nii PKW- kui LKW-objekte. C#-s saad seda teha tüübi List abil. Veendu, et lisad õige using-direktiivi genereerivate kogumite jaoks.
Samm 6: Objektide lisamine loendisse
Selles loendis saad luua mitmeid PKW- ja LKW-objekte. Need objektid eraldatakse kogumis komaga. On oluline teada, et kuigi liikmed on erinevad, jagavad kõik loendi objektid baasklass Auto tüüpi.
Samm 7: Polümorfismi kutsumine
Nüüd, kus sul on loend, loo foreach-silmus, mis iterates läbi kõigi nende objektide. Iga kord, kui objektiga tegeletakse, kutsu TÜV meetod. Sõltuvalt objekti tüübist kasutatakse alamklassi spetsiifilist rakendust.
Samm 8: Tulemuse analüüsimine
Lase programmil töötada ja vaata väljundit. See näitab, millal iga auto TÜVi läks. Polümorfism tagab, et vastava alamklassi TÜV meetodit kutsutakse, mitte baasklassi oma.
Samm 9: Testi "override" mõju
Saada selgust override võtmesõna toimimise kohta, eemaldades selle ajutiselt PKW klassist. Mida näed, kui programm töötab uuesti? Baasklassi meetod peaks siis olema kutsutud, mis näitab, kui tähtis on override.

Samm 10: Rakenduse laiendamine
Et süvendada oma arusaamist polümorfismist, saad luua uusi meetodeid, nagu tankimine, ja teha sarnaseid samme. Vaata, kui paindlik on sinu lähenemine ja harjuta kontseptsioone edasi.
Kokkuvõte – Polümorfism C#: Juhend arusaamiseks ja praktiliseks rakendamiseks
Polümorfism on fundamentaalne kontseptsioon objektorienteeritud programmeerimises, mis võimaldab sul kirjutada paindlikku ja laiendatavat tarkvara. Virtuaalsete meetodite ja alamklasside meetodite ülekirjutamise kaudu suureneb sinu koodi taaskasutatavus ja hooldatavus. Siin oled õppinud, kuidas luua baasklass ja selle alamklassid, hallata objekte loendis ning neid tõhusalt polümorfselt kutsuda.
Korduma kippuvad küsimused
Kuidas kasutada võtmesõna virtual?Võtmesõna virtual kasutatakse baasklassis, et näidata, et alamklassides saab meetodit ülekirjutada.
Mida teeb võtmesõna override?override võimaldab alamklassil baasklassi meetodit uuesti määratleda.
Kuidas luua erinevat tüüpi objektide loendit?Sa saad kasutada List tüüpi, et salvestada nii PKW- kui LKW-objekte loendis.
Mida juhtub, kui eemaldan override?Ilma override’ita käivitub baasklassi meetod, mitte alamklassi rakendus.
Kuidas ma saan oma rakendust edaspidi testida?Sa saad luua uusi meetodeid ja lisada erinevaid objekte, et näha, kuidas polümorfism töötab.