В следующих заданиях требуется реализовать абстрактный базовый класс, определив в нем абстрактные функции. Эти функции определяются в производных классах. В базовых классах должны быть объявлены абстрактные функции ввода/вывода, которые реализуются в производных классах. Вызывающая программа должна продемонстрировать вызов всех абстрактных функций классов-наследников с помощью указателя на базовый класс.  
Изменить программу, используя в ней в качестве базового класса соответствующий интерфейс.  
**Примечание:** при необходимости, в программах использовать функции класса `Math`, находящегося в пакете `java.lang`.  
В качестве интерфейса для ввода исходных данных и вывода результатов использовать web-интерфейс организованный с помощью Vaadin. Можно, например, использовать компоненты: `TextField`, `Label`, `Button` и другие.  
**Вариант 9:**  
Создать абстрактный базовый класс `Array` с виртуальными методами `sort` и поэлементной обработки массива `foreach`. Разработать производные классы `Bubble` (пузырек) и `Selection` (выбор). В первом классе сортировка реализуется методом пузырька, а поэлементная обработка состоит в извлечении квадратного корня. Во втором классе сортировка реализуется методом выбора, а поэлементная обработка - вычисление логарифма.