Razlika između klase apstrakcije i sučelja u C #

Sažetak klase

Apstraktna klasa je ona koja je namijenjena samo kao osnovna klasa drugih razreda. 'Abstraktni' modifikator koristi se za stvaranje apstraktne klase. Apstraktni modifikator označava da nedostaje neka implementacija koju treba implementirati u razredu iz nje. Apstraktna klasa može imati apstraktne i ne-apstraktne članove. Apstraktna klasa trebala bi imati barem jednu apstraktnu metodu, jer se u protivnom ne koristi deklarirati tu klasu kao "apstraktnu".

Primjer apstraktne klase u C #:
Kao što je prikazano u gornjem primjeru, apstraktna metoda 'Area' unutar klase MyCircle nadjačava se u izvedenoj klasi MyArea.

Sučelje

Sučelje sadrži samo deklaraciju članova, uključujući metode, svojstva, događaje ili indeksere. Ne sadrži implementaciju ovih članova. Razred ili struktura implementira sučelje, mora dati definiciju metoda deklariranih u sučelju. To znači da sučelje pruža standardnu ​​strukturu koju izvedena klasa treba slijediti.

Primjer sučelja u C #:
Kao što je prikazano u gornjem primjeru, sučelje MyData ima dvije metode deklaracije getdata () i showdata (). Razred NameData koji implementira ovo sučelje trebao bi dati definiciju metoda deklariranih u MyData sučelju.

Razlika između klase apstrakcije i sučelja

  1. Apstraktna klasa može imati i apstraktne i ne-apstraktne članove. Ali u sučelju su svi članovi implicitno apstraktni i moraju ih biti nadjačani u izvedenom razredu.
  2. Klasa može naslijediti nekoliko sučelja, ali samo jednu apstraktnu klasu.
  3. Sažetak klase može sadržavati metode s ili s definicijom. Ali, sučelje može sadržavati samo potpis metoda.
  4. Apstraktna klasa može se potpuno, djelomično ili uopće ne implementirati, ali sučelje bi trebalo biti u potpunosti implementirano, tj. Svi članovi moraju biti definirani u izvedenoj klasi.
  5. Sučelje ne može sadržavati modifikatore pristupa, ali apstraktna klasa može ga imati za funkcije, svojstva ili događaje.
TO