July 4
Java è un linguaggio di programmazione la prima volta nel 1995 da Sun Microsystems. Entrambe le interfacce e classi astratte sono utilizzati in codice Java quando diversi sottotipi della stessa classe devono comportarsi in modo diverso. Le classi astratte e le interfacce funzionano in modo molto diverso e sono utilizzati in modi diversi, anche se ci sono alcune somiglianze tra di loro.
Le classi astratte e le interfacce consentono di codice diverso da utilizzare. Per esempio, una classe astratta può contenere classi concrete, mentre l'interfaccia può contenere classi astratte. Una classe astratta è anche più fluido di un'interfaccia e può contenere i campi che non sono statici o finale, mentre l'interfaccia non può. Inoltre, una classe astratta eredita automaticamente una classe di oggetti, il che significa che includerà metodi come "clone ()" e "equals ()", mentre l'interfaccia non può includere questi metodi.
I metodi di una classe astratta possono essere definite con una serie di parametri di visibilità, tra pubblico, protetto, privato o nessuno. Un'interfaccia può essere visibilmente pubblico soltanto. Ciò significa che tutti i membri di un'interfaccia sono pubblici per impostazione predefinita, mentre i membri di una classe astratta possono includere i membri non pubblici o metodi.
In generale, le interfacce funzionano un po 'più lento di classi astratte perché introducono una nuova classe per ogni metodo che viene implementata, e può richiedere più tempo per un'interfaccia per individuare il metodo corretto in ogni classe. Una classe astratta, d'altra parte, può applicare un metodo a più classi contemporaneamente, e quindi esegue veloce. Tuttavia, la maggior parte delle JVM (Java Virtual Machine) di 2011 compensare la differenza, e queste differenze di prestazioni sono difficilmente notato più.
Un'interfaccia deve essere utilizzato quando lo script si chiede di fornire implementazione per tutti i metodi. Le interfacce possono costruire tutte le classi back up da zero in modo sistematico. Le classi astratte dovrebbero essere usati quando si ha un parziale esecuzione dello script, ma non è del tutto completa. Lasciare queste implementazioni incomplete come "astratto" e consentire un server interpretarli.