Ključna razlika – razred proti vmesniku
Objektno usmerjeno programiranje (OOP) je pogosta paradigma pri razvoju programske opreme. Pomaga prenesti scenarije iz resničnega sveta v programiranje z uporabo razredov in objektov. Razred je načrt za ustvarjanje predmeta. Programer lahko ustvari razred z lastnostmi in metodami. Učenec in učitelj sta objekta. Ustvarjanje predmeta je znano kot instanciranje. OOP uporablja tudi vmesnike. Vmesniki in razred se morda zdijo podobni, vendar imajo razlike. Ta članek obravnava razliko med razredom in vmesnikom. Ključna razlika med razredom in vmesnikom je, da je razred referenčni tip, ki je načrt za instanciranje predmeta, medtem ko je vmesnik referenčni tip, ki ga ni mogoče uporabiti za instanciranje predmeta.
Kaj je razred?
V OOP se vse obravnava kot objekt. Objekta ni mogoče ustvariti brez razreda. Razred je načrt za ustvarjanje predmeta. Pri gradnji hiše arhitekt nariše načrt. Načrt je podoben razredu. Hiša je podobna objektu. Razred je načrt za gradnjo objekta. Objekt je tisto, kar je ustvarjeno z uporabo razreda.
Razred vsebuje lastnosti in metode. Študent ima lahko lastnosti, kot so ime, ocena, številka indeksa. Študent ima lahko metode, kot so branje, hoja, učenje. Ustvari se razred s potrebnimi lastnostmi in metodami.
Sintaksa za ustvarjanje razreda v mnogih programskih jezikih je naslednja. Ustvarjen je s ključno besedo class.
razred class_name {
// lastnosti
//metode
}
Programski jeziki, kot sta C in Java, sledijo podobni sintaksi za ustvarjanje predmeta z uporabo razreda. Predpostavimo, da je ime razreda študent.
Študent s1=nov študent ();
Ta s1 je predmet. Ključna beseda »novo« se uporablja za dodelitev pomnilnika za lastnosti. Razred ima tudi konstruktor za inicializacijo lastnosti ali spremenljivk.
Člani razreda, kot so lastnosti in metode, imajo modifikatorje dostopa. Specifikatorji dostopa opisujejo dostopnost in vidnost teh članov drugim razredom. Člani razreda imajo lahko specifikatorje dostopa, kot so javni, zasebni in zaščiteni. Javni člani so dostopni drugim razredom. Zasebni člani so dostopni le razredu. Zaščiteni člani so dostopni znotraj razreda in ustreznih podrazredov.
Kaj je vmesnik?
Abstrakcija je steber objektno orientiranega programiranja. Namenjen je skrivanju podrobnosti izvedbe in prikazu funkcionalnosti uporabniku. Abstrakcija je dosežena z uporabo abstraktnih razredov in vmesnikov. Abstraktna metoda nima izvedbe. Razred, ki vsebuje vsaj eno abstraktno metodo, se imenuje abstraktni razred.
Če obstajata dva abstraktna razreda, je treba implementirati metode, deklarirane v teh razredih. Za implementacijo teh metod se uporablja nov razred. Če bi imela oba razreda isto metodo, bi to lahko povzročilo težavo z dvoumnostjo. Zato imajo programski jeziki, kot sta Java in C, vmesnik.
Vmesniki vsebujejo le deklaracijo metod. Ni metode izvajanja. Prav tako vmesnikov ni mogoče uporabiti za ustvarjanje predmetov. Uporabljajo se za podporo večkratnemu dedovanju in za zaščito kode.
Sintaksa vmesnika je naslednja. Vmesnik uporablja ključno besedo "vmesnik".
vmesnik ime_vmesnika{
type method1(parameter_list);
type method2(parameter_list);
}
Glede na zgoraj, imajo vmesniki samo deklaracijo. Definicije ni. Torej vmesniki ne morejo instancirati predmetov. Daje samo abstrakten pogled na to, kaj je vmesnik. Metode, deklarirane v vmesniku, lahko implementira en ali več razredov. Razred uporablja ključno besedo "implement" za implementacijo vmesnika. Glejte spodnji primer, napisan z Javo.
Slika 01: Program z uporabo vmesnikov
Glede na zgornji program sta A in B vmesnika. Vmesnik A ima deklaracijo metode, ki je sum(). Vmesnik B ima deklaracijo metode sub(). Razred C izvaja oba vmesnika, ki sta A in B. Zato razred C definira obe metodi sum() in sub(). Po izdelavi objekta tipa C je mogoče poklicati obe metodi sum() in sub().
Metode, deklarirane znotraj vmesnika, morajo biti vedno javne, ker jih definirajo izvedbeni razredi. Vmesnik lahko podeduje tudi drug vmesnik.
Kakšne so podobnosti med razredom in vmesnikom?
- Obe sta referenčni vrsti.
- Oboje se nanaša na objektno orientirano programiranje.
Kakšna je razlika med razredom in vmesnikom?
Razred proti vmesniku |
|
Razred je referenčni tip, ki je načrt za ustvarjanje predmeta. | Vmesnik je referenčni tip, ki ga ni mogoče instancirati. |
Instancija objekta | |
Razred se uporablja za ustvarjanje primerka predmeta. | Vmesnika ni mogoče instancirati, ker metode ne morejo izvesti nobenega dejanja. |
Konstruktor | |
Razred vsebuje konstruktor za inicializacijo spremenljivk. | Vmesnik ne vsebuje konstruktorja, ker skoraj ni spremenljivk za inicializacijo. |
Ključna beseda | |
Razred uporablja ključno besedo "razred". | Vmesnik uporablja ključno besedo "vmesnik". |
Določitelj dostopa | |
Člani razreda so lahko zasebni, javni in zaščiteni. | Člani vmesnika morajo biti vedno javni, ker jih definirajo izvedbeni razredi. |
Povzetek – Razred proti vmesniku
Razredi in vmesniki se pogosto uporabljajo v objektno usmerjenem programiranju. Razlika med razredom in vmesnikom je v tem, da je razred referenčni tip, ki je načrt za instanciranje predmeta, vmesnik pa je referenčni tip, ki ga ni mogoče uporabiti za instanciranje predmeta. Razred lahko izvaja številne vmesnike. Lahko pa razširi samo en nadrazred. In vmesnik lahko podeduje veliko vmesnikov, vendar ne more biti implementacije. Oba imata svoj pomen. Programer jih lahko uporablja v skladu z razvojno programsko opremo.
Prenesite PDF Class vs Interface
Lahko prenesete PDF različico tega članka in jo uporabite za namene brez povezave v skladu z opombo o citiranju. Prenesite PDF različico tukaj Razlika med razredom in vmesnikom