La classe e l'interfaccia astratte sono usate principalmente per l'astrazione, ma sono molto diverse. Entrambi sono componenti Java di base, ma utilizzano il proprio software. Entrambi i termini possono essere sinonimi tra loro, ma non possono essere intercambiabili.

Ci sono differenze significative tra i due. Se il metodo di interfaccia è astratto per impostazione predefinita, abstract può includere sia metodi astratti che non astratti. A partire da Java 8, le interfacce sono state anche linee guida metodiche e possono essere statiche e standard in Java. Vediamoli in modo più dettagliato.

La differenza tra la classe astratta esistente e l'interfaccia Java

Che cos'è una classe astratta in Java?

In Java, la classe astratta è una classe che è stata dichiarata astratta - può avere o meno metodi astratti. Questo è molto simile all'interfaccia Java, perché può includere l'esecuzione standard. Come la programmazione orientata agli oggetti, le astrazioni in Java sono implementate usando classi e interfacce astratte. In Java, l'astrazione significa nascondere all'utente dettagli insignificanti, riducendo al minimo la complessità e concentrandosi solo su dettagli critici per migliorare l'efficienza. La parola chiave "Abstract" viene utilizzata nella dichiarazione della classe per creare una classe astratta prima della parola chiave della classe.

La classe di riepilogo può avere o meno metodi astratti (metodi non corporei), ma se esiste almeno un metodo di astrazione, dovrebbe essere dichiarato astratto. Tuttavia, i metodi astratti possono essere utilizzati solo nella classe astratta, ma solo per il comportamento predefinito. I metodi di riepilogo possono avere modificatori di input, come personale, pubblico, statico e protetto, a seconda del livello di visualizzazione. La classe di conclusione non può essere creata e non fornisce astrazione al 100% perché può avere un metodo specifico.

Cos'è un'interfaccia?

Sebbene l'interfaccia sembri una classe, non lo è. Poiché Java non supporta più eredità, a volte l'interfaccia è adatta per fornire le basi per una gerarchia di classi. L'interfaccia è un piano di classe utilizzato per raggiungere l'astrazione in Java. Contiene metodi astratti e costanti statiche. In poche parole, l'interfaccia è un insieme di metodi astratti utilizzati per definire il comportamento che una classe dovrebbe eseguire. A differenza dell'attuale classe, l'interfaccia fornisce una completa astrattezza in Java. Può avere sia metodi che variabili come la classe, ma i metodi dichiarati nell'interfaccia sono astratti.

La differenza tra la classe astratta esistente e l'interfaccia Java

  1. In Java, la classe astratta e l'interfaccia "multi-ereditarietà" - Sebbene la classe astratta e l'interfaccia siano utilizzate principalmente per l'astrazione, sono piuttosto diverse l'una dall'altra. Sebbene una classe astratta sia una classe, un'interfaccia è un'interfaccia. Ciò significa che l'interfaccia può espandersi solo su un'altra interfaccia Java, mentre la classe astratta può eseguire più eredità in Java. Bene, Java non supporta l'ereditarietà multipla, ma Java può avere eredità multiple. Classe astratta in Java e "Tipo di metodo" dell'interfaccia - Le due differenze principali sono che l'interfaccia può avere solo metodi astratti e la classe astratta può avere sia metodi astratti che non astratti. Ma a partire da Java 8, l'interfaccia può avere sia metodi standard che statici. In Java, la classe astratta e i "modificatori di input" dell'interfaccia - la classe astratta può avere modificatori di accesso aperti, personali e protetti, ma i metodi di interfaccia sono aperti e astratti. Non è possibile utilizzare un altro modificatore di input con i metodi dell'interfaccia. In Java, "implementa" una classe e un'interfaccia astratte - la classe astratta fornisce l'implementazione dell'interfaccia. A sua volta, l'interfaccia non può fornire un'implementazione di classe astratta. In Java, la classe astratta e la "parola chiave" dell'interfaccia sono usate per dichiarare lo stile astratto della classe astratta, ma le interfacce sono una storia completamente diversa; possono avere solo una massa, stabilità statica finale e dichiarazione del metodo. In Java, la classe astratta e "uso" dell'interfaccia - mentre l'interfaccia è ideale per dichiarare i tipi, la classe astratta è più adatta per il riutilizzo e l'evoluzione. L'interfaccia è come una classe, ma non una classe. In Java, la classe astratta e "affidabilità" dell'interfaccia sono un'altra differenza importante tra la classe astratta e l'interfaccia, essendo quest'ultima un po 'più veloce della prima, perché in Java la ricerca viene generalmente eseguita con l'interfaccia prima che venga chiamato un metodo cancellato. 'è collegato. Classe astratta di Javascript e interfaccia "Variabili finali": le variabili dichiarate nell'interfaccia sono finali per impostazione predefinita, mentre la classe astratta può avere o meno variabili non finali.

Classe astratta e interfaccia Java: una tabella di confronto

Riepilogo della classe e dell'interfaccia astratte in Java

Sia la classe astratta che l'interfaccia sono usate per l'abstract; tuttavia, hanno una buona dose di differenze. La principale differenza tra loro è legata ai metodi di astrazione. Il primo può avere o meno metodi astratti e il secondo è chiaramente astratto. La classe astratta può avere metodi sia astratti che non astratti. A sua volta, l'interfaccia può avere solo metodi astratti, quindi non possono essere implementati, il che significa che l'interfaccia semplicemente non può avere metodi non astratti. Non esiste una classe astratta che vieti la creazione di temi. A sua volta, l'interfaccia può sembrare una classe, ma non.

RIFERIMENTI

  • Bloch, Joshua. Guida al linguaggio di programmazione Java. Boston: Addison-Wesley, 2001. Stampa
  • Bloch, Joshua. Guida al linguaggio di programmazione Java. Boston: Addison-Wesley, 2001. Stampa
  • Flanagan, David. Quindi Java. Sebastopol: MeasurementReilly Media, 1996. Stampa
  • Eckert. Pensando in Java. Delhi: Pearson Education India, 2006. stampare
  • "Credito immagine: https://stackoverflow.com/questions/1913098/what-is-the-difference-between-an-interface-and-abstract-class"