Questo articolo è un articolo speculare di traduzione automatica, clicca qui per saltare all'articolo originale.

Vista: 20706|Risposta: 0

[Fonte] C# Differenza tra classi astratte e interfacce

[Copiato link]
Pubblicato su 21/06/2016 11:34:25 | | |
Classi astratte e interfacce
    Somiglianze:
    (1) può essere ereditato
    (2) non può essere istanziata
    (3) può contenere dichiarazioni di metodo
    (4) La classe derivata deve implementare il metodo non implementato
    Categoria:
    (1) Le classi base astratte possono definire campi, proprietà e implementazioni di metodi. Le interfacce possono definire solo attributi, indicizzatori, eventi e dichiarazioni di metodi, e non possono contenere campi.
    (2) Una classe astratta è una classe incompleta che necessita di ulteriori affinazioni, mentre un'interfaccia è una norma comportamentale. Le interfacce personalizzate di Microsoft sono sempre dotate di un campo valido per dimostrare di essere espressioni del "Posso farcela..." ”
    (3) Le interfacce possono essere implementate più volte, e le classi astratte possono essere ereditate solo da una singola persona
    (4) Le classi astratte sono più definite tra una serie di classi strettamente correlate, mentre la maggior parte delle interfacce sono classi vagamente correlate che implementano tutte una certa funzione
    (5) Le classi astratte sono concetti astratti da una serie di oggetti correlati, quindi riflettono la comunanza interna delle cose; Un'interfaccia è una convenzione funzionale definita per soddisfare chiamate esterne, quindi riflette le caratteristiche esterne delle cose
    (6) L'interfaccia fondamentalmente non presenta caratteristiche specifiche di ereditarietà, promette solo metodi che possono essere chiamati   
    (7) Le interfacce possono essere usate per supportare callback, ma l'ereditarietà non possiede questa funzione
    (8) I metodi specifici implementati dalle classi astratte sono virtuali di default, ma i metodi di interfaccia nella classe che implementano l'interfaccia sono non virtuali di default; ovviamente, puoi anche dichiararli virtuali
    (9) Se una classe astratta implementa un'interfaccia, il metodo nell'interfaccia può essere mappato alla classe astratta come metodo astratto senza doverlo implementare, e il metodo nell'interfaccia può essere implementato in una sottoclasse della classe astratta








Precedente:Si è verificato l'errore di sistema 5. L'accesso è negato.
Prossimo:Il provider 'Microsoft.Jet.OleDb.4.0' non è registrato sulla macchina locale.
Disconoscimento:
Tutto il software, i materiali di programmazione o gli articoli pubblicati dalla Code Farmer Network sono destinati esclusivamente all'apprendimento e alla ricerca; I contenuti sopra elencati non devono essere utilizzati per scopi commerciali o illegali, altrimenti gli utenti dovranno sostenere tutte le conseguenze. Le informazioni su questo sito provengono da Internet, e le controversie sul copyright non hanno nulla a che fare con questo sito. Devi eliminare completamente i contenuti sopra elencati dal tuo computer entro 24 ore dal download. Se ti piace il programma, ti preghiamo di supportare software autentico, acquistare la registrazione e ottenere servizi autentici migliori. In caso di violazione, vi preghiamo di contattarci via email.

Mail To:help@itsvse.com