Bene, "Abstract Interface" è un costrutto lessicale: http://en.wikipedia.org/wiki/Lexical_analysis .
È richiesto dal compilatore, puoi anche scrivere interface
.
Beh, non entrare troppo nel costrutto lessicale del linguaggio in quanto potrebbero averlo messo lì per risolvere alcune ambiguità di compilazione che vengono definite casi speciali durante il processo di compilazione o per una certa compatibilità con le versioni precedenti, prova a concentrarti sul costrutto Lexical di base.
L'essenza di `interfaccia è catturare alcuni concetti astratti (idea / pensiero / pensiero di ordine superiore ecc.) La cui implementazione può variare ... cioè, ci può essere implementazione multipla.
Un'interfaccia è un tipo di dati astratto puro che rappresenta le caratteristiche dell'oggetto che sta acquisendo o rappresentando.
Le caratteristiche possono essere rappresentate dallo spazio o dal tempo. Quando sono rappresentati dallo spazio (memoria) significa che la tua classe concreta implementerà un campo e un metodo / metodi che opereranno su quel campo o nel tempo, il che significa che il compito di implementare la funzione è puramente computazionale (richiede più orologi CPU per l'elaborazione) in modo da avere un compromesso tra spazio e tempo per l'implementazione delle funzionalità.
Se la tua classe concreta non implementa tutte le funzionalità, diventa di nuovo astratta perché hai un'implementazione del tuo pensiero o idea o astrattezza ma non è completa, la specifichi per abstract
classe.
Una classe concreta sarà una classe / serie di classi che cattureranno completamente l'astrattezza che stai cercando di catturare la classe XYZ.
Quindi il modello è
Interface--->Abstract class/Abstract classes(depends)-->Concrete class