Razlika med abstraktnim razredom in vmesnikom v C #

Izvleček razreda

Abstrakten razred je tisti, ki je namenjen le osnovnemu razredu drugih razredov. "Abstraktni" modifikator se uporablja za izvleček razreda. Abstraktni modifikator kaže, da manjka izvedba, ki jo je treba izvesti v razredu, ki izhaja iz nje. Abstraktni razred ima lahko abstraktne in ne-abstraktne člane. Abstraktni razred bi moral imeti vsaj eno abstraktno metodo, v nasprotnem primeru ni mogoče razglašati tega razreda kot "abstraktnega".

Primer abstraktnega razreda v C #:
Kot je prikazano v zgornjem primeru, je abstraktna metoda 'Area' znotraj razreda MyCircle prepisana v izpeljanem razredu MyArea.

Vmesnik

Vmesnik vsebuje samo izjavo članov, vključno z metodami, lastnostmi, dogodki ali kazalniki. Ne vsebuje izvajanja teh članov. Razred ali struktura izvaja vmesnik, mora zagotoviti definicijo metod, prijavljenih v vmesniku. To pomeni, da vmesnik zagotavlja standardno strukturo, ki ji mora slediti izpeljani razred.

Primer vmesnika v C #:
Kot je prikazano v zgornjem primeru, ima vmesnik MyData dve metodi deklaracije getdata () in showdata (). Razred NameData, ki izvaja ta vmesnik, mora dati definicijo metod, prijavljenih v vmesniku MyData.

Razlika med razredom abstraktnosti in vmesnikom

  1. Abstraktni razred ima lahko tako abstraktne kot tudi ne-abstraktne člane. Toda v vmesniku so vsi člani implicitno abstraktni in jih je treba preglasiti v izvedenem razredu.
  2. Razred lahko podeduje več vmesnikov, vendar le en abstrakten razred.
  3. Abstraktni razred lahko vsebuje metode z ali z definicijo. Toda vmesnik lahko vsebuje samo podpis metode.
  4. Abstraktni razred se lahko v celoti, delno ali sploh ne izvaja, v celoti pa mora biti vgrajen vmesnik, tj. Vsi člani morajo biti definirani v izpeljanem razredu.
  5. Vmesnik ne more vsebovati modifikatorjev dostopa, vendar ga lahko abstraktni razred vsebuje za funkcije, lastnosti ali dogodke.
IT