Интерфейсы, как и классы, также являются важным типом данных в языке Java. Переменные, объявленные с помощью интерфейсов, называются переменными интерфейса . Итак, какие данные можно хранить в переменных интерфейса?
Прежде всего, интерфейсы — это ссылочные переменные . Переменные интерфейса могут хранить ссылки на экземпляры классов, реализующих интерфейс, то есть хранить ссылки на объекты.
Например: предположим, что Com — это интерфейс, тогда вы можете использовать Com для объявления переменной.
Комком;
Поскольку переменная COM еще не сохранила ссылку на объект, реализующий интерфейс, говорят, что COM в данный момент является пустым интерфейсом .
Предположим, что класс ImpleCom — это класс, реализующий интерфейс Com. Используйте ImpleCom для создания объекта с именем object. Тогда объектный объект может не только вызывать исходные методы класса ImpleCom, но также вызывать методы интерфейса, реализованные классом ImpleCom. .
ImpleComobject=newImpleCom();
Происхождение термина « обратный вызов интерфейса »:
Это слово заимствует термин «обратный вызов указателя» на языке C, который означает, что адрес переменной сохраняется в переменной-указателе в определенный момент, а затем переменная-указатель может косвенно управлять данными, хранящимися в переменной.
В языке Java обратный вызов интерфейса означает, что ссылка на объект, созданный классом, реализующим интерфейс, может быть присвоена переменной интерфейса, объявленной интерфейсом. Тогда переменная интерфейса может вызвать метод интерфейса, реализованный классом. , когда интерфейс Когда переменная вызывает метод интерфейса, реализованный классом, она уведомляет соответствующий объект о необходимости вызова этого метода.
Примечание . Интерфейс не может вызывать другие неинтерфейсные методы класса.