Page 85 - 4836
P. 85
реалізовується клас Dictionary. Навіть може не знати точної
назви.
Клас WordTranslator повинен одержувати об’єкт через
змінну з типом інтерфейсу Dict, яка вже при виконанні
програми повинна буде ініціалізовуватись посиланням на
конкретний екземпляр класу, що реалізовує Dict. Передача
посилання на конкретну реалізацію інтерфейсу здійснюється
через конструктор класу. Таким чином, він матиме змогу
працювати з будь-якою реалізацією даного інтерфейсу.
Щоправда існує серйозне обмеження, якщо використовується
змінна інтерфейсного типу, то можливе застосування лише
методів оголошених в інтерфейсі (згадаймо про поліморфізм
об’єктів – батько може заміняти в певних випадках дочірній
клас, проте можливе застосування лише методів, які
оголошені в даному класі. При цьому, якщо метод не
статичний, то відбувається заміщення методів батьківського
класу, методами дочірнього класу). Тобто якщо реалізації
інтерфейсу Dict міститимуть певні додаткові методи, вони не
будуть доступні через інтерфейсну змінну.
Клас MainClass
Тепер у нас є усі доступні класи, щоб їх застосовувати.
Лишилось написати клас із методом main, який пов’яже усе
докупи і запустить наш додаток.
package yroku_java_2014;
public class MainClass {
WordTranslator transl;
Dictionary dictEnUk;
MainClass() {
//створюємо словник
dictEnUk = new Dictionary();
83