classi astratte e interfacce consentono di codice diverso per essere utilizzato . 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ò. In più , 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 .
Metodi implementati
metodi di una classe astratta può essere definito con una varietà di parametri di visibilità , tra public, protected , private o nessuno . Un'interfaccia può essere visibilmente pubblico solo . Questo significa che tutti i membri di un'interfaccia sono pubbliche per impostazione predefinita, mentre i membri di una classe astratta può includere membri non pubblici o metodi .
Prestazioni
in generale , le interfacce funzionano un po ' più lento di classi astratte perché introducono una nuova classe per ogni metodo che viene attuata, e può richiedere più tempo per un'interfaccia per individuare il metodo corretto in ogni classe . Una classe astratta , d'altro canto , può applicare un metodo a più classi contemporaneamente , ed esegue quindi più veloce. Tuttavia, la maggior parte delle JVM ( Java Virtual Machine ) di di 2011 compensano le differenze , e queste differenze di prestazioni sono difficilmente notato più.
Usa
Un'interfaccia deve essere utilizzato quando lo script ti chiede di fornire l'implementazione per tutti i metodi . Le interfacce possono costruire tutte le classi back up da zero in modo sistematico . Le classi astratte devono essere utilizzati quando si ha una parziale attuazione dello script , ma non è del tutto completa. Lascia queste implementazioni incomplete come " astratto" e consentire a un server di interpretarli.
Programmazione © www.354353.com