Atšķirība starp abstraktu klasi un interfeisu C #

Abstraktā klase

Abstrakta klase ir tā, kas paredzēta tikai kā citu klašu pamatklase. “Abstrakts” modifikators tiek izmantots, lai klase būtu abstrakta. Abstrakts modifikators norāda, ka trūkst dažas ieviešanas, kas jāievieš klasē, kas no tā iegūta. Abstraktajā klasē var būt gan abstrakti, gan abstrakti dalībnieki. Abstraktajai klasei vajadzētu būt vismaz vienai abstraktai metodei, pretējā gadījumā nav jēgas šo klasi pasludināt par “abstraktu”.

C # abstraktās klases piemērs:
Kā parādīts iepriekš minētajā piemērā, atvasinātajā klasē MyArea tiek pārņemta abstraktā metode “Area” MyCircle klasē..

Saskarne

Interfeiss satur tikai dalībnieku deklarācijas, ieskaitot metodes, rekvizītus, notikumus vai indeksētājus. Tajā nav šo dalībnieku ieviešanas. Klases vai struktūras realizē saskarni, jāsniedz interfeisā deklarēto metožu definīcija. Tas nozīmē, ka saskarne nodrošina standarta struktūru, kas jāievēro atvasinātajai klasei.

C # saskarnes piemērs:
Kā parādīts iepriekšējā piemērā, saskarnei MyData ir divu metožu deklarācija getdata () un showdata (). Klasei NameData, kura ievieš šo saskarni, jāsniedz MyData saskarnē deklarēto metožu definīcija.

Atšķirība starp abstraktu klasi un interfeisu

  1. Abstraktā klasē var būt gan abstrakti, gan abstrakti biedri. Bet saskarnē visi dalībnieki ir netieši abstrakti, un tie ir jāpārskata atvasinātajā klasē.
  2. Klase var mantot vairākas saskarnes, bet tikai vienu abstraktu klasi.
  3. Abstraktā klase var saturēt metodes ar vai ar definīciju. Bet interfeiss var saturēt tikai metodes parakstu.
  4. Abstraktu klasi var pilnībā, daļēji vai vispār neīstenot, bet interfeiss ir pilnībā jāīsteno, t.i., visi dalībnieki jādefinē atvasinātajā klasē.
  5. Interfeiss nevar saturēt piekļuves modifikatorus, bet abstraktajai klasei tas var būt paredzēts funkcijām, īpašumiem vai notikumiem.
IT