Nun, 'Abstract Interface' ist ein lexikalisches Konstrukt: http://en.wikipedia.org/wiki/Lexical_analysis .
Es wird vom Compiler benötigt, man kann auch schreiben interface
.
Lassen Sie sich nicht zu sehr auf das lexikalische Konstrukt der Sprache ein, da sie es möglicherweise dort abgelegt haben, um eine Mehrdeutigkeit der Kompilierung zu beheben, die während des Kompilierungsprozesses als Sonderfälle bezeichnet wird, oder um eine gewisse Abwärtskompatibilität zu erzielen. Versuchen Sie, sich auf das lexikalische Kernkonstrukt zu konzentrieren.
Die Essenz von `interface besteht darin, ein abstraktes Konzept (Idee / Denken / Denken höherer Ordnung usw.) zu erfassen, dessen Implementierung variieren kann ... das heißt, es kann mehrere Implementierungen geben.
Eine Schnittstelle ist ein reiner abstrakter Datentyp, der die Merkmale des Objekts darstellt, das erfasst oder dargestellt wird.
Merkmale können durch Raum oder Zeit dargestellt werden. Wenn sie durch Leerzeichen (Speicher) dargestellt werden, bedeutet dies, dass Ihre konkrete Klasse ein Feld und eine Methode / Methoden implementiert, die auf diesem Feld oder nach Zeit arbeiten, was bedeutet, dass die Aufgabe der Implementierung des Features rein rechnerisch ist (erfordert mehr CPU-Uhren für die Verarbeitung), so dass Sie einen Kompromiss zwischen Raum und Zeit für die Implementierung von Features haben.
Wenn Ihre konkrete Klasse nicht alle Funktionen implementiert, wird sie wieder abstrakt, weil Sie eine Implementierung Ihres Gedankens oder Ihrer Idee oder Abstraktheit haben, diese jedoch nicht vollständig ist. Sie geben sie nach abstract
Klasse an.
Eine konkrete Klasse ist eine Klasse / Gruppe von Klassen, die die Abstraktheit, die Sie versuchen, die Klasse XYZ zu erfassen, vollständig erfasst.
So ist das Muster
Interface--->Abstract class/Abstract classes(depends)-->Concrete class