Примеры использования интерфейсов Java и Selenium Webdriver

Примеры использования интерфейсов Java и Selenium Webdriver

В данном уроке речь пойдет о следующих темах:

  • Пример создания интерфейса Java
  • Перегрузка метода интерфейса
  • Использование типа интерфейса
  • Down Casting (приведение к типу)

Как и раньше, нам понадобится основной проект и его классы:

interface

Интерфейс Page имеет следующий код:

Класс GoogleHomePage:

Класс GoogleSearchResultPage:

И тестовый класс TestClass:

Начну краткое объяснение кода…

Для объявления интерфейса Page используется ключевое слово interface. Он имеет один метод search типа GoogleSearchResultPage, который не имеет реализации, что и отличает его от простого класса или абстрактоного класса.

Все классы, которые реализуют этот интерфейс, – должны обязательно выполнить метод search.

У нас два класса реализуют интерфейс – GoogleHomePage и GoogleSearchResultPage. Для этого используется ключевое слово implements.

К тому же, если класс реализует интерфейс, то он обязательно должен реализовать с перегрузкой и все объявленные в нем методы.

Оба класса перегружают метод search. Например,

Как можно увидеть, для перегрузки используется аннотация @Override.

Обратите внимание на интересную реализацию методов searchOnGoogleHomePage, searchOnSearchResultPage и getSearchResultStatistics. У всех них объявляется объект типа интерфейса Page, например,

Для его создания используется конструктор разных классов и основная цель этого объекта – это вызов перегруженных методов search.

Более интересной является запись:

В скобках оператора if используется ключевое слово instanceof, которое проверяет, относиться ли объект page к типу GoogleSearchResultPage.

Если условие выполняется (true), то ранее созданной переменной типа String searchResultStatistics присваивается значение, возвращаемое методом getResultSet в классе GoogleSearchResultPage. Операция

имеет название “downсasting” (приведение к типу). Это делается для того, чтобы четко определить, какие методы и какого класса использовать, так как у нас в наличии есть 2 класса – главный и наследник.