Acest articol este un articol oglindă al traducerii automate, vă rugăm să faceți clic aici pentru a sări la articolul original.

Vedere: 21396|Răspunde: 0

[Sursă] C# Diferența dintre clasele abstracte și interfețe

[Copiază linkul]
Postat pe 21.06.2016 11:34:25 | | |
Clase abstracte și interfețe
    Asemănări:
    (1) poate fi moștenit
    (2) nu poate fi instanțiat
    (3) poate conține declarații de metodă
    (4) Clasa derivată trebuie să implementeze metoda neimplementată
    Categorie:
    (1) Clasele de bază abstracte pot defini câmpuri, proprietăți și implementări de metode. Interfețele pot defini doar atribute, indexatori, evenimente și declarații de metodă și nu pot conține câmpuri.
    (2) O clasă abstractă este o clasă incompletă care necesită rafinări suplimentare, în timp ce o interfață este o normă comportamentală. Interfețele personalizate Microsoft vin întotdeauna cu un câmp capabil să demonstreze că sunt expresii ale expresiei "Pot să o fac..." ”
    (3) Interfețele pot fi implementate de mai multe ori, iar clasele abstracte pot fi moștenite doar de o singură persoană
    (4) Clasele abstracte sunt mai bine definite între o serie de clase strâns înrudite, în timp ce majoritatea interfețelor sunt clase vag înrudite care implementează toate o anumită funcție
    (5) Clasele abstracte sunt concepte abstractizate dintr-o serie de obiecte înrudite, astfel încât reflectă comunalitatea internă a lucrurilor; O interfață este o convenție funcțională definită pentru a satisface apelurile externe, deci reflectă caracteristicile externe ale lucrurilor
    (6) Interfața practic nu are caracteristici specifice de moștenire, promite doar metode care pot fi numite   
    (7) Interfețele pot fi folosite pentru a suporta callback-uri, dar moștenirea nu are această caracteristică
    (8) Metodele specifice implementate de clasele abstracte sunt virtuale implicit, dar metodele de interfață din clasa care implementează interfața sunt nevirtuale implicit, desigur, le poți declara virtuale
    (9) Dacă o clasă abstractă implementează o interfață, metoda din interfață poate fi mapată la clasa abstractă ca metodă abstractă fără a fi nevoie să o implementeze, iar metoda din interfață poate fi implementată într-o subclasă a clasei abstracte








Precedent:A apărut eroarea de sistem 5. Accesul este refuzat.
Următor:Furnizorul 'Microsoft.Jet.OleDb.4.0' nu este înregistrat pe mașina locală.
Disclaimer:
Tot software-ul, materialele de programare sau articolele publicate de Code Farmer Network sunt destinate exclusiv scopurilor de învățare și cercetare; Conținutul de mai sus nu va fi folosit în scopuri comerciale sau ilegale, altfel utilizatorii vor suporta toate consecințele. Informațiile de pe acest site provin de pe Internet, iar disputele privind drepturile de autor nu au legătură cu acest site. Trebuie să ștergi complet conținutul de mai sus de pe calculatorul tău în termen de 24 de ore de la descărcare. Dacă îți place programul, te rugăm să susții software-ul autentic, să cumperi înregistrarea și să primești servicii autentice mai bune. Dacă există vreo încălcare, vă rugăm să ne contactați prin e-mail.

Mail To:help@itsvse.com