Erinevus abstraktse klassi ja liidese vahel C # -s

Abstraktne klass

Abstraktne klass on klass, mis on mõeldud ainult teiste klasside põhiklassiks. Klassi abstraktseks muutmiseks kasutatakse 'abstraktset' modifikaatorit. Abstraktne modifikaator näitab, et selle rakendatavast klassist tuleb mõni rakendamine puudu. Abstraktses klassis võivad olla abstraktsed ja mitteabstraktsed liikmed. Abstraktsel klassil peaks olema vähemalt üks abstraktne meetod, vastasel juhul pole mingit vajadust kuulutada seda klassi abstraktseks.

C-klassi abstraktse klassi näide:
Nagu ülaltoodud näites näidatud, on tuletatud klassis MyArea ületatud abstraktne meetod 'Area' MyCircle'i klassis.

Liides

Liides sisaldab ainult liikmete deklaratsioone, sealhulgas meetodeid, omadusi, sündmusi või indekseerijaid. See ei sisalda nende liikmete rakendamist. Klass või struktuur rakendab liidest, peab andma liideses deklareeritud meetodite määratluse. See tähendab, et liides pakub standardset ülesehitust, mida tuletatud klass peab järgima.

C # liidese näide:
Nagu ülaltoodud näites näidatud, on liidesel MyData kaks meetodi deklaratsiooni getdata () ja showdata (). Klass NameData, kes seda liidest rakendab, peaks määratlema MyData liideses deklareeritud meetodid.

Erinevus abstraktse klassi ja liidese vahel

  1. Abstraktses klassis võivad olla nii abstraktsed kui ka mitteabstraktsed liikmed. Kuid liideses on kõik liikmed kaudselt abstraktsed ja tuletatud klassis tuleb need üle vaadata.
  2. Klass võib pärida mitut liidest, kuid ainult ühte abstraktset klassi.
  3. Abstraktne klass võib sisaldada meetodeid määratlusega või määratlusega. Kuid liides võib sisaldada ainult meetodi allkirja.
  4. Abstraktset klassi saab täielikult, osaliselt või üldse mitte rakendada, kuid liides peaks olema täielikult rakendatud, st kõik liikmed peavad tuletavas klassis olema määratletud.
  5. Liides ei tohi sisaldada juurdepääsu modifikaatoreid, kuid abstraktses klassis võib see olla funktsioonide, omaduste või sündmuste jaoks.
IT