Diferențele dintre interfața C # Rezumat și Interfața
Clasa abstractă și Interfața sunt metodologii foarte importante de învățat pentru înțelegerea oricărei instruiri de programare orientate pe obiecte. În mod normal, ambele sunt foarte confuze pentru începerea inițială a unui cursant pe o programare orientată pe obiecte. Dacă definim o clasă abstractă, dar nu implementăm nimic, atunci pare absolut Interfața, nimeni nu va putea înțelege nici o diferență între ele, mai degrabă decât o declarație. Cu toate acestea, există o mulțime de diferențe și asemănări disponibile între Interfață și clasa Abstract.
O clasă abstractă este o clasă simplă care se definește ca abstractă și nu ar putea fi inițiată. O clasă abstractă trebuie extinsă de unele subclase pentru utilizarea tuturor caracteristicilor sau utilității acelei superclase sau clasei abstracte. De fapt, ajută la menținerea ierarhiei corespunzătoare a superclaselor sau subclaselor. Mai multe subclase pot utiliza același nume de funcționalitate cu definiții diferite. Se asigură de fapt că aplicația trebuie să urmeze o anumită ierarhie sau standarde specifice care să poată transmite o aplicație funcționalitate explicabilă adecvată.
Interfața nu este absolut o clasă, la fel ca o entitate definită de un singur cuvânt Interfață. Interfața nu a definit niciodată nicio definiție, aceasta depinde în întregime de o declarație specifică, care ar trebui să fie moștenită de mai multe clase în același timp. Mai multe clase pot defini definiția multiplă a acelei declarații individuale a unei interfețe specifice. Deține, de asemenea, același tip de facilitate precum clasa Abstract, ajută în principal la menținerea unei aceleași ierarhii de subclase cu o definiție diferită. Dar diferența principală dintre clasa abstractă și Interfață este extinsă din mai multe clase abstracte nu este posibilă, în timp ce moștenirea mai multor interfețe este posibilă. Deoarece C # nu acceptă moșteniri multiple, la fel și același tip de funcționalitate oferă și interfața.
Comparație față în față între C # Abstract și Interfață (Infografie)
Mai jos se află principalele comparații între C # Abstract și Interfața
Diferențele cheie între C # Abstract și interfața
Unele diferențe cheie sunt explicate mai jos între C # Abstract și Interfața
- Clasa abstractă și Interfața sunt utilizate de fapt de una sau mai multe subclase. Principala restricție este aceea că o subclasă nu poate să extindă mai multe clase abstracte înseamnă că moștenirile multiple nu pot fi posibile, în timp ce subclasa poate moșteni mai multe interfețe o dată.
- Rezumatul poate ține corpul cu o definiție sau numai o definiție a unei metode. Subclasa care extinde această clasă abstractă poate fi folosită cu metoda corpului și, de asemenea, poate explica detaliile corpului cu privire la orice definiție specifică a metodei abstracte înseamnă că poate fi suprasolicitat. Clasa abstractă ar trebui să aibă cel puțin o metodă abstractă (înseamnă singura definiție a metodei fără corp). Interfața are doar definiția metodei, nu ar trebui să conțină detalii despre corpul metodei de definire. O moștenire a subclasei este interfața și le folosește pe cele care nu definesc metoda prin detaliile corespunzătoare ale corpului date dinamic pentru mai multe subclase.
- O clasă abstractă poate avea diferite modificatoare de acces, cum ar fi publice, private sau protejate, astfel încât orice metodă sau proprietăți din cadrul clasei abstracte pot defini diferiți modificatori de acces. Întrucât pentru Interfață nu este în măsură să ofere niciun modificator de acces, deci toate proprietățile sau metodele definite în interiorul interfeței ar trebui să fie un modificator de acces public, nu au opțiunea de a defini un alt modificator de acces în interiorul interfeței.
- Conceptul de superclase și subclase este perfect perfect pentru clasa abstractă. O clasă abstractă i se poate da identitatea de bază a unei subclase, deține în mod normal un fel similar de obiect al acelei subclase. Întrucât Interfața definește în mod normal un tip specific de activitate periferică a unei clase. Să presupunem că un nume de interfață este Moveable, acum această interfață poate fi moștenită atât de mașină, cât și de om. În timp ce mașinile și oamenii sunt ambele obiecte de clasă complet diferite și nu întrețin nicio relație între ele.
- Dacă aplicația are diverse implementări, dar activitatea acelei implementări specifice aproape aceeași, atunci este mai bine să utilizați clasa Abstract, unde puteți defini acea logică specifică și toată subclasa pot accesa cu ușurință aceeași logică de fiecare dată. Ca un exemplu de conectivitate a bazelor de date, care este utilizat în mod normal de toate subclasele, astfel încât dacă acest cod de generare și cod de închidere se poate păstra într-o clasă abstractă, atunci orice subclase va fi foarte ușor să acceseze aceeași. Întrucât implementările multiple doresc să partajeze doar semnătura metodei, atunci Interfața este întotdeauna mai bună.
Comparație Tabelul C # Rezumat și interfață
Urmează tabelul de comparație între C # Abstract și interfața
BAZA PENTRU
COMPARAŢIE | Clasă abstractă | Interfață |
Moștenire multiplă | O singură subclasă poate extinde doar o clasă abstractă, nu multiplă. | O subclasă poate implementa mai multe interfețe care ajută la recuperarea care nu acceptă caracteristica de moștenire multiplă a C #. |
Definiția clasei | Interfața nu definește niciodată un anumit corp al unei definiții, ci ține doar definiția implementată corect de subclasă ulterior. | Rezumatul poate ține întregul corp cu definiție și, de asemenea, poate ține singura definiție, precum interfața care poate fi anulată de orice subclase. Orice clasă abstractă ar trebui să aibă cel puțin o metodă abstractă care conține doar detalii despre definiție, corpul va fi descris ulterior în subclasă. |
Modificator de acces | Interfața nu are niciodată vreun modificator de acces în definiția sa. Interfața consideră în mod normal toate proprietățile ca fiind publice. | O clasă abstractă poate avea un modificator de acces pentru definiția sa. Deci toate proprietățile pot fi publice, private sau protejate. |
Performanţă | În mod normal, este nevoie de puțin mai mult timp pentru a afla metoda corespunzătoare a subclasei. | Este puțin mai rapid decât interfața. |
Concluzie
Interfața și clasa Abstract sunt utilizate în principal pentru gestionarea mai multor implementări într-un mod inteligent, astfel încât codul redundant poate fi ușor evitat și totul se află în ierarhie și structură corespunzătoare. Interfața va fi întotdeauna mai bună pentru partajarea aceleiași semnături în mai multe cazuri. Să presupunem că pantalonii au o ramură principală și, de asemenea, au mai multe ramuri într-o locație diferită. Acum, un produs specific se poate lansa într-o locație specifică, cu o singură abordare, în timp ce în altă locație se lansează într-o abordare diferită. În acest caz, logica ar trebui diferită pentru același produs în mai multe locații, acest tip de logică poate fi mai bine gestionat de interfață. Acum, același produs poate avea câteva caracteristici comune care trebuie evidențiate în fiecare ramură în momentul lansării acelui produs. În acest caz, pentru a evita redundanța de cod adăugați aceeași logică în clasa abstractă și puteți utiliza în mai multe implementări în ramuri diferite.
Articol recomandat
Acesta a fost un ghid util pentru diferențele dintre C # Abstract și Interfața aici am discutat despre comparația dintre cap și cap, o diferență cheie împreună cu infografia. De asemenea, puteți consulta articolul următor pentru a afla mai multe -
- Interfața C # vs clasa abstractă
- Interfață Java împotriva clasei abstracte
- Interfață tipografie față de clasă
- TypeScript Type vs Interfață
- Modificatori de acces în PHP
- Clasele abstracte în JavaScript