Recomandat, 2020

Alegerea Editorului

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 abstracte poate avea un membru abstract și ne-abstract. O clasă abstractă ar trebui să aibă cel puțin o metodă abstractă, în caz contrar, nu se poate folosi declararea acelei clase ca fiind "abstractă".

Exemplu de clasă abstractă în C #:

clasa abstractă MyCircle {abstract public int Area (); } Clasa MyArea: MyCircle {public suprascrie int Area () {return side * side; .....}}
1 2 3 4 5 6 7 8 9 10 11clasa abstractă MyCircle {abstract 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 înlocuită î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 #:

folosind System.Collections.Generic; folosind 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); }}}
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22folosind sistemul. Colecții. Generic; folosind sistemul. Linq; folosind sistemul. Text ; namespace MyName {interfață publică MyData {void getdata (); void showdata (); } class public NameData: MyData {public dublu getdata () {nume șir; Consola. WriteLine ("Introduceți numele:"); name = Console. Citeste linia ( ) ; } 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ă definească metodele declarate în interfața MyData.

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

  1. O clasă abstractizată poate avea membri abstracți, dar și neabraț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ă integral, 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.
Top