Page 30 - 4657
P. 30
System.out.println("derived constructor");
System.out.println("n = " + n);
// тільки в класі
// System.out.println("n_pri = " + n_pri);
System.out.println("n_pro = " + n_pro);
System.out.println("n_pripro = " + n_pripro);
System.out.println("n_pub = " + n_pub);
} }
class SamePackage {
SamePackage() {
Protection p = new Protection();
System.out.println("same package constructor");
System.out.println("n = " + p.n);
// тільки в класі
// System.out.println("n_pri = " + p.n_pri);
System.out.println("n_pro = " + p.n_pro);
// тільки в класі і підкласі
// System.out.println("n_pripro = " + p.n_pripro):
System.out.println("n_pub = " + p.n_pub):
} }
Інтерфейси
Інтерфейси Java створені для підтримки динамічного
вибору (resolution) методів під час виконання програми.
Інтерфейси схожі на класи, але на відміну від останніх у інтер-
фейсів немає змінних екземплярів, а в оголошеннях методів
відсутня реалізація. Клас може мати будь-яку кількість
інтерфейсів. Усе, що потрібно зробити - це реалізувати в класі
повний набір методів всіх інтерфейсів. Сигнатури таких методів
класу повинні точно збігатися із сигнатурами методів
реалізованого в цьому класі інтерфейсу. Інтерфейси володіють
своєю власною ієрархією, що не перетинається з класовою
ієрархією спадкування. Це дає можливість реалізувати той
самий інтерфейс у різних класах, ніяк не зв'язаних по лінії
ієрархії класового спадкування. Саме в цьому і виявляється
головна сила інтерфейсів. Інтерфейси є аналогом механізму
множинного спадкування в C++, але використовувати їх
набагато легше.
28