Una Classe è una specifica di come costruire Oggetti dalla stessa Classe. È un tipo di modello o prototipo da cui vengono creati i singoli oggetti. Possiamo dire che una Classe è un modello che descrive i tipi di stato e comportamento che gli Oggetti del suo tipo supportano.
In termini di Programmazione Orientata agli Oggetti (OOP), possiamo dire che un’auto Toyota è un’istanza della Classe di Oggetti conosciuta come Auto. Una classe è come il progetto di un’automobile. Usando questo progetto, potete costruire tutte le auto che volete. Ogni auto che costruite è un oggetto della classe Auto. Ogni Auto ha anche un numero, naturalmente. Se vuoi dire a qualcuno qual è la tua auto, gli dai il numero per identificarla. Questo numero è chiamato riferimento dell’Oggetto .
Un’Interfaccia fornisce un contratto che specifica come creare un Oggetto, senza preoccuparsi delle specifiche di come fanno le cose. Un’Interfaccia è un tipo di riferimento e include solo membri astratti come Eventi, Metodi, Proprietà ecc. e non ha implementazioni per nessuno dei suoi membri.
Quando una Classe implementa un’Interfaccia è costretta dal compilatore a scrivere i metodi e le Proprietà che l’Interfaccia ha definito. Cioè, se implementate un’interfaccia nella vostra classe dovete dichiarare tutti gli eventi, metodi e proprietà dell’interfaccia nella vostra classe. Un’interfaccia può avere solo metodi astratti e costanti, che sono sempre implicitamente pubblici, statici e finali.
Una classe ha sia una definizione che un’implementazione, mentre un’interfaccia ha solo una definizione.
Una classe può essere istanziata, ma un’interfaccia non può essere istanziata Puoi creare un’istanza di un oggetto che implementa l’interfaccia.
Una classe è un’entità completa con membri, metodi insieme alla loro definizione e implementazione. Un’interfaccia è solo un insieme di definizioni che dovete implementare nella vostra classe che eredita quell’interfaccia.