Diferența dintre clasa abstractă și interfața în C #

Clasa abstractă
O clasă abstractă este una care este destinată să fie doar o clasă de bază a altor clase. Modificatorul "abstract" este folosit pentru a face un rezumat de clasă. Un modificator abstract indică faptul că există o implementare lipsă care trebuie implementată în clasa derivată din ea. Clasa abstractă poate avea un membru abstract și non-abstract. O clasă abstractă ar trebui să aibă cel puțin o metodă abstractă, în caz contrar, nu este util să se declare această clasă ca fiind "abstractă".

Exemplu de clasă abstractă în C #:

1234567891011 clasa abstractă MyCircle public public int Area (); Clasa MyArea: MyCircle public suprascrie int Area () return side * side; .....

După cum se arată în exemplul de mai sus, metoda abstractă "Area" din clasa MyCircle este suprascrisă în clasa derivată MyArea.

Interfață
O interfață conține numai declarația de membri, inclusiv metode, proprietăți, evenimente sau indexatoare. Nu conține implementarea acestor membri. O clasă sau struct implementează interfața, trebuie să furnizeze definiția metodelor declarate în interfață. Aceasta înseamnă că o interfață oferă o structură standard pe care trebuie să o urmeze clasa derivată.

Exemplu de interfață în C #:

12345678910111213141516171819202122 utilizând System.Collections.Generic; utilizând System.Linq; utilizând System.Text; namespace MyName interfață publică MyData void getdata (); void showdata (); class public NameData: MyData public dublu getdata () nume șir; Console.WriteLine ("Introduceți numele:"); name = Console.ReadLine (); public void showdata () Console.WriteLine ("Numele meu este:", nume);

După cum se arată în exemplul de mai sus, interfața MyData are două declarații de metodă getdata () și showdata (). Class NameData, care implementează această interfață, trebuie să dea definiția metodelor declarate în interfața MyData.

Diferența dintre clasa abstractă și interfața

  1. O clasă abstractizată poate avea membri abstracți, dar și ne-abstracți. Dar, într-o interfață, toți membrii sunt implicit abstracți și trebuie să fie suprascrisi în clasa derivată.
  2. O clasă poate moșteni mai multe interfețe, dar numai o clasă abstractă.
  3. O clasă abstractă poate conține metode cu sau cu o definiție. Dar, o interfață poate conține doar semnătura metodei.
  4. O clasă abstractă poate fi implementată pe deplin, parțial sau nu, dar o interfață ar trebui implementată pe deplin, adică toți membrii trebuie să fie definiți în clasa derivată.
  5. O interfață nu poate conține modificatori de acces, dar o clasă abstractă o poate avea pentru funcții, proprietăți sau evenimente.