Cóż, „Abstract Interface” to konstrukcja leksykalna: http://en.wikipedia.org/wiki/Lexical_analysis .
Jest to wymagane przez kompilator, możesz także pisać interface
.
Cóż, nie wtrącaj się zbytnio w konstrukcję leksykalną języka, ponieważ mogliby go tam umieścić, aby rozwiązać pewne niejasności kompilacji, które określa się jako specjalne przypadki podczas procesu kompilacji lub dla pewnej kompatybilności wstecznej, spróbuj skupić się na podstawowej konstrukcji leksykalnej.
Istotą `interfejsu jest uchwycenie pewnej abstrakcyjnej koncepcji (idea / myśl / myślenie wyższego rzędu itp.), Której implementacja może się różnić ... to znaczy, może istnieć wiele implementacji.
Interfejs to czysty abstrakcyjny typ danych, który reprezentuje cechy obiektu, który przechwytuje lub reprezentuje.
Funkcje mogą być reprezentowane przez przestrzeń lub czas. Gdy są reprezentowane przez przestrzeń (pamięć), oznacza to, że Twoja konkretna klasa zaimplementuje pole i metodę / metody, które będą działały na tym polu lub przez czas, co oznacza, że zadanie implementacji tej funkcji ma charakter czysto obliczeniowy (wymaga więcej zegarów procesora do przetwarzania), więc masz kompromis między przestrzenią a czasem na wdrożenie funkcji.
Jeśli twoja konkretna klasa nie implementuje wszystkich funkcji, ponownie staje się abstrakcyjna, ponieważ masz implementację swojej myśli, idei lub abstrakcyjności, ale nie jest kompletna, określasz ją przez abstract
klas.
Konkretna klasa będzie klasą / zestawem klas, które w pełni uchwycą abstrakcyjność, którą próbujesz uchwycić klasę XYZ.
Więc wzór jest
Interface--->Abstract class/Abstract classes(depends)-->Concrete class