Tässä opetusohjelmassa opit-
- Perintö
- Polymorfismi
Mikä on perintö C #: ssä?
Perintö on tärkeä käsite C #: ssä. Perintö on käsite, jossa määrität vanhempaluokat ja lapsiluokat.
Lapsiluokissa peritään vanhempien luokan menetelmät ja ominaisuudet, mutta samalla ne voivat tarvittaessa myös muuttaa menetelmien käyttäytymistä. Lapsiluokka voi tarvittaessa määritellä myös omat menetelmänsä.
Saat paremman käsityksen, jos näemme tämän toiminnan.
Katsotaanpa nyt, kuinka voimme sisällyttää perintökäsitteen koodiimme.
Vaihe 1) Ensimmäinen vaihe on vaihtaa oppitunnin koodi. Tässä vaiheessa lisätään alla oleva koodi Tutorial.cs-tiedostoon.
Huomaa, että meidän on nyt lisättävä suojatun käyttöoikeuden modifioija sekä TutorialID- että TutorialName-kenttiin.
Muista, että olimme maininneet tämän pääsymuuttujan Access Modifier -oppaassa. Täältä näet tämän tarkoituksen. Vain kun sinulla on tämä käyttöoikeuksien muokkaaja (suojattu), alaluokka voi käyttää vanhempien luokan kenttiä.
Vaihe 2) Toinen vaihe on lisätä uusi lapsiluokkamme. Tämän luokan nimi on "Guru99Tutorial". Tässä vaiheessa lisätään alla oleva koodi Tutorial.cs-tiedostoon. Koodi tulee sijoittaa Tutorial-luokan määritelmän jälkeen.
Koodin selitys: -
- Ensimmäinen askel on luoda Guru99Tutorial-lapsiluokka. Meidän on myös mainittava, että tämä luokka tulee olemaan oppitunnin lapsiluokka. Tämä tapahtuu avainsanalla ':'.
- Seuraavaksi määritellään menetelmä nimeltä RenameTutorial. Sitä käytetään nimittämään TutorialName-kenttä. Tämä menetelmä hyväksyy merkkijonomuuttujan, joka sisältää opetusohjelman uuden nimen.
- Määritimme sitten parametrin pNewName TutorialName-kenttään.
Huomaa : - Vaikka emme ole määrittäneet TutorialName-kenttää "Guru99Tutorial" -luokassa, voimme silti käyttää tätä kenttää. Tämä johtuu siitä, että "Guru99Tutorial" on oppitunnin lapsiluokka. Ja koska teimme Tutorial-luokan kentät suojatuiksi, tämä luokka voi käyttää niitä.
Vaihe 3) Viimeinen vaihe on muokata Program.cs-päätiedostoa. Konsolisovelluksessamme aiomme tehdä objektin Guru99Tutorial-luokasta. Tällä objektilla aiomme kutsua RenameTutorial-menetelmää. Näytämme sitten TutorialName-kentän GetTutorial-menetelmän avulla.
using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;namespace DemoApplication{class Tutorial{protected int TutorialID;protected string TutorialName;public void SetTutorial(int pID,string pName){TutorialID=pID;TutorialName=pName;}public String GetTutorial(){return TutorialName;}}public class Guru99Tutorial:Tutorial{public void RenameTutorial(String pNewName){TutorialName=pNewName;}static void Main(string[] args){Guru99Tutorial pTutor=new Guru99Tutorial();pTutor.RenameTutorial(".Net by Guru99");Console.WriteLine(pTutor.GetTutorial());Console.ReadKey();}}}
Koodin selitys: -
- Ensimmäinen vaihe on luoda objekti Guru99Tutorial-luokalle. Tämä tapahtuu uuden avainsanan avulla. Huomaa, että tällä kertaa emme luo Opetus-luokan objektia.
- Käytämme Guru99Tutorial-luokan RenameTutorial-menetelmää muuttaaksesi TutorialName-kenttää. Välitämme merkkijonon ".Net by Guru99" RenameTutorial-menetelmään.
- Kutsumme sitten GetTutorial-menetelmää. Huomaa, että vaikka tätä menetelmää ei ole määritelty Guru99Tutorial-luokassa, voimme silti käyttää tätä menetelmää. GetTutorial-menetelmän tulos näytetään sitten konsolille Console.WriteLine-menetelmän kautta.
Jos yllä oleva koodi syötetään oikein ja ohjelma suoritetaan onnistuneesti, seuraava tulos näytetään.
Tuotos:
Tuloksesta voimme selvästi nähdä, että TutorialName-kentän nimi muutettiin nimeksi ".Net by Guru99". Tämä oli mahdollista lapsiluokan kutsumalla RenameTutorial-menetelmällä.
Mikä on polymorfismi C #: ssa?
Polymorfismi on OOP-käsite, jossa yhdellä nimellä voi olla monia muotoja.
Esimerkiksi sinulla on älypuhelin viestintään. Valitsemasi viestintätila voi olla mikä tahansa. Se voi olla puhelu, tekstiviesti, kuvaviesti, posti jne. Joten tavoite on yhteinen eli viestintä, mutta heidän lähestymistapansa on erilainen. Tätä kutsutaan polymorfismiksi.
Saat paremman käsityksen, jos näemme tämän toiminnan.
Katsotaan nyt, miten voimme sisällyttää polymorfismin käsitteen koodeihimme.
Vaihe 1) Ensimmäinen vaihe on vaihtaa oppitunnin koodi. Tässä vaiheessa lisätään alla oleva koodi Tutorial.cs-tiedostoon.
Koodin selitys: -
1 ja 2) Ensimmäinen vaihe on sama kuin aikaisemmissa esimerkeissämme. Pidämme SetTutorial-menetelmän määritelmän sellaisenaan.
3) Tämä menetelmä asettaa TutorialID ja TutorialName parametrien pID ja pName perusteella.
4) Täällä teemme muutoksen luokkaamme, jolloin lisätään uusi menetelmä samalla nimellä SetTutorial. Vain tällä kertaa välitämme vain yhden parametrin, joka on pName. Tässä menetelmässä asetamme vain TutorialName-kentäksi pName.
Vaihe 2) Viimeinen vaihe on muokata Program.cs-päätiedostoa. Konsolisovelluksessamme aiomme tehdä objektin Guru99Tutorial-luokasta.
using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;namespace DemoApplication{class Tutorial{public int TutorialID;public string TutorialName;public void SetTutorial(int pID,string pName){TutorialID=pID;TutorialName=pName;}public void SetTutorial(string pName){TutorialName=pName;}public String GetTutorial(){return TutorialName;}static void Main(string[] args){Tutorial pTutor=new Tutorial();pTutor.SetTutorial(1,"First Tutorial");Console.WriteLine(pTutor.GetTutorial());pTutor.SetTutorial("Second Tutorial");Console.WriteLine(pTutor.GetTutorial());Console.ReadKey();}}}
Koodin selitys: -
- Ensimmäisessä vaiheessa käytämme SetTutorial-menetelmää kahdella parametrilla. Missä välitämme sekä TutorialID- että TutorialName-menetelmän tälle menetelmälle.
- Toisessa vaiheessa kutsumme nyt SetTutorial-menetelmää vain yhdellä parametrilla. Välitämme vain TutorialName-menetelmän tälle menetelmälle.
Jos yllä oleva koodi syötetään oikein ja ohjelma suoritetaan, seuraava lähtö näytetään. Jos siinä tapauksessa, että halusit noutaa myös opetusohjelman tunnuksen opetusohjelman nimen kanssa, noudata seuraavaa vaihetta
- Luo erillinen menetelmä nimeltä public int GetTutorialID
- Kirjoita tähän tapaan koodirivi "return TutorialID". Tätä voidaan käyttää palauttamaan TutorialID kutsuvaan ohjelmaan.
Tuotos:
Tuloksesta voimme selvästi nähdä, että molempia menetelmiä kutsuttiin onnistuneesti. Tämän vuoksi merkkijonot "Ensimmäinen opetusohjelma" ja "Toinen opetusohjelma" lähetettiin konsolille.
Yhteenveto
- Perintö on silloin, kun lapsiluokka perii vanhemman luokan kentät ja menetelmät. Lapsiluokka voi myös määrittää omat menetelmänsä.
- Polymorfismi on OOP-käsite, jossa yhdellä nimellä voi olla monia muotoja.