Sovelluksia suunniteltaessa tai ohjelmointiuraa aloitettaessa on tarpeen tietää ero Abstract Classin ja Interfacen välillä C#:ssa. Sekä abstraktia luokkaa että käyttöliittymää käytetään abstraktion suorittamiseen, jossa voidaan ymmärtää abstrakteja menetelmiä. Vaikka molempia ei voi käyttää yhtä aikaa.
Abstraktit luokat ja käyttöliittymät voivat vaikuttaa samanlaisilta joillakin tavoilla, mutta on keskeisiä eroja, jotka auttavat määrittämään, mikä on paras valinta tietyn ohjelmointiin liittyvän tavoitteen saavuttamiseksi.
Abstraktia luokkaa ei pitäisi koskaan käyttää suoraan. Tällä luokalla on oltava vähintään yksi abstrakti menetelmä. Ja se merkitään avainsanalla tai muokkaimella abstrakti luokan määritelmässä. Toisaalta käyttöliittymä sallii vain toiminnallisuuden määrittelemisen. Sitä ei voida toteuttaa. Vaikka luokka voi kehittää vain yhden abstraktin luokan, se voi myös hyödyntää erilaisia rajapintoja.
Abstrakti luokka vs. käyttöliittymä C#:ssa
The ero abstraktin luokan ja käyttöliittymän välillä C#:ssa on, että abstraktin luokan ”päätoiminto” on selittää luokan todellista identiteettiä, kun taas käyttöliittymän päätehtävä on selittää luokan ulkoisia mahdollisuuksia. Abstrakti luokka ei tarjoa täyttä abstraktiota, kun taas käyttöliittymä voi tarjota täyden abstraktion.
Moninkertainen periytyminen ei ole mahdollista abstraktissa luokassa, kun taas rajapinta voi tehdä moniperinnön mahdolliseksi.
Abstraktin luokan ja käyttöliittymän vertailutaulukko C#-kielellä
Vertailuparametri | Abstrakti luokka | Käyttöliittymä C# |
---|---|---|
Toiminnallisuus | Uuden menetelmän lisääminen abstraktiin luokkaan antaa mahdollisuuden tarjota oletustoteutus ja siten kaikki nykyinen koodi toimii oikein | Uuden menetelmän lisääminen käyttöliittymään mahdollistaa käyttöliittymän kaikkien toteutusten jäljittämisen ja toteutuksen määrittämisen viimeaikaiselle menetelmälle |
Erilaista perintöä | Luokka voi periä vain yhden abstraktin luokan | Luokka voi periä useita rajapintoja |
Mitä ne sisältävät? | Abstraktiluokka sisältää Data Member ja konstruktorit | C#:n käyttöliittymä ei sisällä datajäseniä ja konstruktoreita |
Tarjoa | Abstrakti luokka voi tarjota täydellisen oletuskoodin ja/tai yksityiskohdat, jotka tulisi ohittaa | C#:n käyttöliittymä ei pysty tarjoamaan mitään koodia, vain allekirjoituksen |
Liikenopeus | Abstrakti luokka on nopea nopeuden suhteen | C#:n käyttöliittymä tarvitsee enemmän aikaa saadakseen oikean menetelmän vastaaviin luokkiin |
Mikä on abstrakti luokka C#:ssa?
Abstrakti luokka on jotain, joka voidaan tarkoitettu vain muiden luokkien perusluokiksi. Ne ovat luokkia, joissa on yksi tai useampi abstrakti menetelmä. Abstrakti menetelmä tunnetaan menetelmänä, joka ilmoitetaan, mutta se ei sisällä toteutusta.
Luokan luomiseksi meidän on käytettävä "abstraktia" muokkausta. Tämä muokkaus osoittaa, että siitä otetussa luokassa saattaa olla muutama puuttuva toteutus, joka on otettava käyttöön. Abstrakti luokka voi sisältää sekä abstrakteja että ei-abstrakteja jäseniä.
Tällä abstraktilla luokalla tulisi olla vähintään yksi abstrakti menetelmä, jota on jo käsitelty edellä. Ilman menetelmää emme voi julistaa tätä luokkaa "abstraktiksi".
Joskus abstrakteja luokkia ei välttämättä ilmennetä, ja ne tarvitsevat alaluokkia toteuttaakseen abstrakteja menetelmiä. Jos luomme abstraktia luokkaa, luomme perusluokan, joka saattaa sisältää yhden tai useamman valmiin menetelmän, mutta löydämme ainakin yhden tai useamman menetelmän, joka jätetään kesken ja julistetaan abstraktiksi.
Jos kaikki abstraktin luokan menetelmät jäävät kesken, se on aivan kuin käyttöliittymä. Abstraktin luokan varsinainen tarkoitus on toimittaa perusluokan määritelmä siitä, kuinka johdettu luokkien joukko toimii, ja antaa ohjelmoijien täyttää toteutuksen johdetuissa luokissa.
Voidaan myös sanoa, että abstraktin luokan tarkoitus on tarjota perusluokan määritelmä.
Mikä on C#:n käyttöliittymä?
Toisaalta käyttöliittymä ei ole luokka, jolla on vain osoitus toimivuudesta. Voimme kutsua sitä malliksi ilman toteutusta. Teoriassa se on vain menetelmien määritelmä, jolla on jäsenten ilmoitus.
Voimme ajatella sitä tyhjänä kuorena, joka ei sisällä jäsentensä toteutusta. Käyttöliittymä on kuin abstrakti perusluokka, jossa on vain abstrakteja jäseniä, kuten menetelmiä, indeksoijia, tapahtumia, ominaisuuksia jne.
Sen suoramuodostaminen ei ole mahdollista, ja sen jäsenet voivat toteuttaa mikä tahansa luokka. Lisäksi luokka voi toteuttaa erilaisia rajapintoja, mutta luokka voi saada vain yhden luokan. Toisin sanoen voimme sanoa, että käyttöliittymässä on vain jäsenilmoitukset, eikä se sisällä näiden jäsenten toteutusta.
Luokka toteuttaa rajapinnan, ja sen on toimitettava rajapinnassa ilmoitetut menetelmät. Käyttöliittymän merkitys tuo vakiorakenteen, jota johdetun luokan on noudatettava.
Tärkeimmät erot abstraktin luokan ja käyttöliittymän välillä C#:ssa
Usein kysytyt kysymykset (FAQ) abstraktista luokasta ja käyttöliittymästä C#-kielellä
Mitä hyötyä abstraktista luokasta on C#:ssa?
C# on yleiskäyttöinen olio-ohjelmointikieli. Se on Microsoftilta. C#:n päätavoitteena on käyttää C++:n laskentatehoa Virtual Basicin ohjelmoinnin helppoudella. Se perustuu pääasiassa C++:aan ja sisältää myös samanlaisia ominaisuuksia kuin Java.
Abstrakti luokka on tapa saavuttaa abstraktio C#:ssa, eikä sitä voi ilmentää suoraan. Abstraktin luokan tehtävänä on luoda jotain toiminnallisuutta tai luoda yhteinen käyttäytyminen, jonka alaluokat voivat periä, toteuttaa tai ohittaa.
Se tarjoaa periaatteessa suunnitelman johdetuille luokille ja antaa ohjeita siitä, mitä johdetuille luokille tulee toteuttaa, kun ne perivät abstraktin luokan.
Mikä on käyttöliittymä C#:ssa ja miksi sitä käytetään?
C#:n käyttöliittymä voidaan määritellä tyyppimääritelmäksi, kuten luokka. Mutta se tarjoaa vain ilmoituksia ja periytyvät luokat ja rakenteet.
Sitä käytetään luokan kanssa määrittelemään sopimus (sopimus siitä, mitä luokka tarjoaa sovellukselle). Se ilmoittaa vain menetelmät ja erilaiset ominaisuudet, ja luokka sanelee, mitä menetelmä todella tekee.
Sitä ei voida instantoida objektina, ja sitä käytetään vain menetelmien ja ominaisuusilmoitusten kokoelmana. Se määrittää, mitä toimintoja luokka voi suorittaa tai suorittaa.
Mikä on polymorfismi C#:ssa?
Polymorfismi ilmaistaan yleensä yhtenä rajapintana ja useana funktiona. Polymorfismi C#:ssa tarkoittaa kykyä ottaa useita muotoja. Kapseloinnin ja periytymisen jälkeen se on toinen olio-ohjelmoinnin pilarikonsepti. C# tarjoaa mahdollisuuden toteuttaa erilaisia menetelmiä, joita kutsutaan yleensä samalla nimellä.
C#:ssa on kahdenlaisia polymorfismeja:
Johtopäätös
Näiden kahden eron ymmärtäminen on melko vaikea tehtävä. Voimme yhdistää kaiken löytämämme tiedon, mutta silti se ei riitä. Teoreettisesti molemmat ovat ohjelmoinnin tärkeimpiä termejä ja ovat melko samanlaisia, mutta toiminnallisuuden suhteen ne eroavat paljon.
Vaikka abstrakti luokka on tietyntyyppinen luokka, joka toimii muiden luokkien perustana, käyttöliittymä on vain tyhjä kuori, jossa on vain jäsenilmoitukset.