Интерфейсы
Интерфейс - это коллекция методов и свойств, которые сгруппированы в одном месте для реализации конкретной функциональности. После определения интерфейса его можно реализовать в классе. Интерфейсы не существуют сами по себе, "создать экземпляр интерфейса", как это делается для класса - нельзя. Кроме того, интерфейсы не могут содержать код с реализацией функционала, они только описывают определенный набор действий. Этот код будет содержаться в классах, которые реализуют данный интерфейс. Интерфейс - это некий "договор", который обязуется исполнять реализующий его класс. Пример объявления интерфейса:
public interface Moveable {
void moveRight();
void moveLeft();
void moveUp();
void moveDown();
}
Все описанные в интерфейсе методы имеют модификаторы public abstract, которые указывать, как правило, не обязательно. Один класс может реализовывать несколько интерфейсов, а один интерфейс может быть реализован несколькими классами. Интерфейс можно использовать двумя способами:
Класс может реализовывать интерфейс. В описании класса интерфейс указывается как реализуемый данным классом, а в коде класса обязательно определяются все методы, которые описаны интерфейсом.
Возможно объявление переменных и возвращаемых параметров с типом данного интерфейса. В такую переменную может быть записан экземпляр любого класса, реализующего данный интерфейс.
В некоторых языках с развитой объектной структурой, с возможностью наследования одновременно от нескольких классов - например в C++ - понятия "интерфейса" не существует. Их роль играют абстрактные классы. Суть от этого не меняется, мы по-прежнему говорим о некоем наборе правил, от которого не может быть порожден объект напрямую. Выше приведенный интерфейс в стиле C++ будет выглядеть примерно следующим образом:
#ifndef INTERFACE_MOVEABLE_HPP
#define INTERFACE_MOVEABLE_HPP
class Moveable{
public:
// Деструктор. В данном случае он обязан быть, и обязан
// быть виртуальным.
virtual ~Moveable (){}
virtual void moveRight() = 0;
virtual void moveLeft() = 0;
virtual void moveUp() = 0;
virtual void moveDown() = 0;
};
#endif
-
Содержание
- Оглавление
- Введение.
- Предмет рассмотрения данного курса.
- Одно-, двух- и многоуровневые приложения.
- Интернет.
- Адрес в интернете
- 2001:0Db8:11a3:09d7:1f34:8a2e:07a0:765d
- Имя в интернете
- Службы (сервисы)
- Сокета.
- Что такое "сокета" (socket) ?
- Создание серверной сокеты (пример на языке c).
- Сериализация
- Основы верстки: таблицы
- Основы верстки: фреймы
- Основы верстки: позиционирование участков сайта
- Протокол http
- Структура запроса (Request).
- Структура ответа (Response).
- Перспективы развития http.
- Интернет-приложения
- Web-приложения
- Web-сервисы
- Особенности проектирования
- Особенности пользовательского интерфейса
- Программирование интернет-приложений
- Объектно-ориентированное программирование
- Классы и объекты
- Жизненный цикл класса
- Статические члены класса
- Инкапсуляция
- Наследование
- Полиморфизм
- Интерфейсы
- Событийно-ориентированное программирование
- Совместная работа над проектом
- Технологии создания web-клиентов
- Dom (Document Object Model)
- Каскадные таблицы стилей
- JavaScript
- Обфускация и динамическое получение скриптов
- Java Applets
- ActiveX/npapi
- Adobe Flash
- Web-серверы
- Nginx (engine X)
- Технологии, применяемые на стороне сервера
- ИнтерфейсCgi
- КонцепцияMvc
- Сервлеты
- JavaScript
- Хранение данных