Aiškumas programinės įrangos kūrimo procesų eilėse vis labiau išsiskiria, ypač kai kalbama apie objektiškai orientuotą programavimą. Pagrindinis šios programavimo būdo aspektas yra Polimorfizmas. Su gilesniu savo taikomosios logikos supratimu galėsi kurti lankstesnes ir lengviau prižiūrimas programas. Pasinerkime į polimorfizmo pasaulį ir išmokime koncepcijas per praktinius pavyzdžius.

Svarbiausi įžvalgai

Polimorfizmas leidžia objektams pasirodyti įvairiomis formomis. Tai vyksta per metodų perkrovimą ir perrašymą. Pagrindinės koncepcijos apima:

  • virtuolių metodų naudojimas bazinėse klasėse
  • „override“ taikymas paveldėtose klasėse
  • objektų tipų konvertavimo koncepcija
  • funkcionalumo plėtra paprasčiausiai pridedant naujas funkcijas

Žingsnis po žingsnio vadovas

Žingsnis 1: Įvadas į Polimorfizmą

Norint suprasti polimorfizmą C#, pirmiausia pažvelkime į pagrindinę koncepciją. Terminas turi graikų kilmę ir reiškia „daugelis formų“. Objektiškai orientuotame programavime kalbama apie tai, kad metodas bazinėje klasėje gali būti tiek perrašomas, tiek perkraunamas paveldėtose klasėse. Tai leidžia tau naudoti bendras sąsajas, tuo pačiu redefinuojant įgyvendinimą.

Supraskite Polimorfizmą C# su praktiniais pavyzdžiais

Žingsnis 2: Struktūros kūrimas

Pradėk nuo pagrindinės struktūros, kuri apibrėžia bazinę klasę. Šiuo atveju mes naudome klasę pavadinimu Auto. Ši klasė taip pat turėtų turėti metodą, kuris vadinamas „TÜV“. Metodas bus deklaruojamas bazinėje klasėje, tačiau dar neįgyvendintas.

Supraskite Polimorfizmą C# praktiškais pavyzdžiais

Žingsnis 3: Paveldėtų klasių apibrėžimas

Dabar sukurk paveldėtas klases PKW ir LKW. Kiekviena paveldėta klasė turėtų pailginti bazinę klasę Auto. Šiose klasėse tu įgyvendinsi metodą TÜV su raktažodžiu override. Tai pritaikys bazinės klasės metodą, kad kiekviena paveldėta klasė galėtų turėti savo specifinę logiką.

Supraskite Polimorfizmą C# su praktiniais pavyzdžiais

Žingsnis 4: Virtuolaus metodo įgyvendinimas

Prieš perrašant TÜV metodą paveldėtose klasėse, bazinėje klasėje reikės nustatyti raktažodį virtual. Tai signalizuoja, kad bazinės klasės metodas gali būti perrašytas.

Žingsnis 5: Objekto sąrašo sudarymas

Norint toliau tyrinėti polimorfizmą, sukurk sąrašą, kuris galėtų saugoti tiek PKW, tiek LKW objektus. C# tai gali padaryti su List duomenų tipu. Nepamiršk pridėti teisingą Using direktyvą generinėms kolekcijoms.

Žingsnis 6: Objektų pridėjimas prie sąrašo

Šiame sąraše tu gali sukurti kelis PKW ir LKW objektus. Šie objektai bus atskirti kableliais kolekcijoje. Svarbu žinoti, kad, nepaisant skirtingų tipų, visi sąrašo objektai dalijasi bazinės klasės Auto tipu.

Žingsnis 7: Polimorfizmo kvietimas

Dabar, kai turi sąrašą, sukurk foreach ciklą, kuris pereina per visus šiuos objektus. Kiekvieną kartą, kai objektas apdorojamas, kviesk TÜV metodą. Priklausomai nuo objekto tipo, bus naudojama specifinė paveldėtos klasės įgyvendinimas.

Žingsnis 8: Rezultato analizė

Paleisk programą ir stebėk rezultatą. Jis parodys, kuris automobilis kada buvo TÜV. Polimorfizmas užtikrina, kad būtų kviečiama konkretus paveldėtos klasės TÜV metodas, o ne bazinės klasės.

Žingsnis 9: „Override“ poveikio testavimas

Pažvelk į tai, kaip veikia override raktažodis, laikinai jį pašalindamas iš PKW klasės. Ką matai, kai programa vėl paleidžiama? Tada turėtų būti kviečiamas bazinės klasės metodas, kuris parodo, kaip svarbus yra override.

Supraskite Polimorfizmą C# su praktiniais pavyzdžiais

Žingsnis 10: Tavo programos plėtra

Norint pagilinti savo polimorfizmo supratimą, gali sukurti naujus metodus kaip degalų papildymas ir atlikti panašius žingsnius. Pažiūrėk, kaip lankstus tavo požiūris yra ir toliau praktikuok koncepcijas.

Apibendrinimas – Polimorfizmas C#: Supratimo ir praktinio taikymo vadovas

Polimorfizmas yra fundamentali objektiškai orientuoto programavimo koncepcija, leidžianti rašyti lanksčią ir plėtojimą programinę įrangą. Naudojant virtuolius metodus ir perrašant paveldėtų klasių metodus padidėja tavo kodo pernaudojamumas ir priežiūros lengvumas. Čia sužinojai, kaip sukurti bazinę klasę ir jos paveldėtas klases, valdyti objektus sąraše ir efektyviai juos taisyklingai kviečiant.

Dažnai užduodami klausimai

Kaip naudoti virtual raktažodį?Virtual raktažodis naudojamas bazinėje klasėje, kad nurodytų, jog metodą galima perrašyti paveldėtose klasėse.

Kas daro override raktažodis?Override leidžia paveldėtai klasei perrašyti bazinės klasės metodą.

Kaip sukurti objektų sąrašą su skirtingais tipais?Tu gali naudoti List tipą, kad saugotum tiek PKW, tiek LKW objektus sąraše.

Kas nutiks, jei pašalinsiu override?Be override bus vykdoma bazinės klasės metodą, o ne paveldėtos klasės įgyvendinimas.

Kaip galiu toliau testuoti savo programą?Tu gali sukurti naujus metodus ir pridėti skirtingus objektus, kad pamatytum, kaip veikia polimorfizmas.