После определения интерфейса его могут реализовать один или несколько классов.
Чтобы реализовать интерфейс, используйте предложение реализации в определении класса.
Класс должен реализовать все методы, необходимые интерфейсу.
Общая форма класса, включающего предложение реализации, следующая:
класс имя класса расширяет суперкласс реализует интерфейс {
// тело класса
}
Чтобы реализовать более одного интерфейса, интерфейсы разделяются запятыми.
Предложение Extensions является необязательным при реализации интерфейсов.
Методы, реализующие интерфейс, должны быть объявлены как общедоступные.
Сигнатура реализующего метода должна точно совпадать с подписью, указанной в интерфейсе.
Пример реализации интерфейса Series:
В этом примере класс ByTwos реализует интерфейс Series, генерируя серию чисел, которая увеличивается на два при каждом вызове метода getNext().
Методы getNext(), reset() и setStart() в классе ByTwos объявлены со спецификатором открытого доступа.
Это необходимо, поскольку при реализации метода, определенного интерфейсом, он должен быть объявлен как общедоступный.
Все члены интерфейса неявно общедоступны, поэтому реализация в классе должна учитывать этот модификатор доступа.
Вот класс, демонстрирующий ByTwos:
Включение метода getPrevious() не потребовало каких-либо изменений в интерфейсе Series.
Гибкость изменения реализаций, не затрагивая интерфейс, является одним из основных преимуществ использования интерфейсов в объектно-ориентированном программировании.
Абстрактные классы:
Если класс включает интерфейс, но не реализует все определенные им методы, его необходимо объявить абстрактным.
Абстрактные классы не могут быть созданы напрямую (т.е. на их основе нельзя создавать объекты).
Их можно использовать как абстрактные суперклассы, позволяя подклассам обеспечивать полную реализацию методов интерфейса.
Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3