«Абстрактный интерфейс» - это лексическая конструкция: http://en.wikipedia.org/wiki/Lexical_analysis .
Это требуется компилятором, вы также можете написать interface
.
Что ж, не вдавайтесь в лексическую конструкцию языка слишком сильно, поскольку они могли бы поместить ее туда, чтобы разрешить некоторую неоднозначность компиляции, которая называется особым случаем во время процесса компиляции или для какой-либо обратной совместимости, попробуйте сосредоточиться на базовой лексической конструкции.
Суть `интерфейса состоит в том, чтобы захватить некоторую абстрактную концепцию (идея / мысль / мышление более высокого порядка и т. Д.), Реализация которой может варьироваться ... то есть может быть несколько реализаций.
Интерфейс - это чистый абстрактный тип данных, который представляет функции объекта, который он захватывает или представляет.
Особенности могут быть представлены пространством или временем. Когда они представлены пробелом (память), это означает, что ваш конкретный класс будет реализовывать поле и метод / методы, которые будут работать с этим полем или по времени, что означает, что задача реализации функции является чисто вычислительной (требует больше процессорных часов для обработки), поэтому у вас есть компромисс между пространством и временем для реализации функции.
Если ваш конкретный класс не реализует все функции, он снова становится абстрактным, потому что у вас есть реализация вашей мысли, идеи или абстрактности, но она не завершена, вы указываете ее по abstract
классу.
Конкретным классом будет класс / набор классов, которые будут полностью отражать абстрактность, которую вы пытаетесь охватить классом XYZ.
Таким образом, шаблон
Interface--->Abstract class/Abstract classes(depends)-->Concrete class