Skip to main content

Что такое наследование интерфейса?

Наследование интерфейса - это механизм на определенных компьютерных языках, где определенные функции наследуются классом, и затем этот конкретный класс должен обеспечить реализации для этих функций, чтобы быть завершенным. Интерфейсы существуют только в определенных объектно-ориентированных языках программирования. Они могут использоваться для эмуляции множественного наследования, в то же время фактически не позволяя классу многократно наследовать, поскольку, как правило, нет ограничений на количество интерфейсов, от которых класс может наследовать. В дополнение к невыполненным методам интерфейсы могут также включать в себя открытые константы.

При наследовании интерфейса объект, который наследует заглушки и константы метода, считается типом объекта интерфейса. Таким образом, если класс X унаследован от интерфейса Y, любой экземпляр класса X также будет экземпляром класса Y. Это становится более сложным, когда наследование интерфейса класса включает более одного отдельного интерфейса. Для каждого дополнительного интерфейса, который унаследован, результирующий класс может быть законно использован в качестве экземпляра каждого. Если класс унаследован от десяти различных интерфейсов, объекты этого класса могут быть использованы в качестве экземпляра одиннадцати различных объектов, включая самого себя.

Такое сложное наследование не часто необходимо. Наследование интерфейса используется, чтобы гарантировать, что у класса есть определенный набор требуемых поведений, и эти поведения позволяют ему выполнять множество функций, которые он не мог бы иначе сделать. Типичным примером этого является интерфейс ActionListener в Java, который требует, чтобы класс реализовал только один конкретный метод. Успешная реализация этого метода позволяет пользователю при желании управлять кнопками, элементами меню или любым другим объектом окна в классе. Наследование интерфейса - это относительно простой способ добавления сложных функций в класс, не беспокоясь о самых сложных проблемах наследования.

Одним из самых больших преимуществ использования наследования интерфейса является то, что оно позволяет использовать конкретные объекты в общем смысле. Поскольку класс, реализующий интерфейс, является экземпляром этого интерфейса, его можно использовать в любом месте, где требуется экземпляр этого интерфейса. Например, если класс A реализует класс C, а класс B также реализует класс C, если метод принимает в качестве параметра экземпляр класса C, то приемлемым параметром будет либо экземпляр класса A, либо экземпляр класса B. , Интерфейсы не могут быть созданы сами по себе, потому что они не завершены, поэтому никогда не будет объекта, который был бы просто экземпляром класса C в качестве параметра.