Page 17 - 4657
P. 17
p1.distance(60, 80) = 100.0
Наслідування класів
Другою сильною рисою Java є наслідування класів (першою
– інкапсуляція). Класи-нащадки мають можливість не тільки
створювати свої власні змінні і методи, але й успадковувати
змінні і методи класів-предків. Класи-нащадки принято називати
підкласами. Безпосереднього попередника даного класу
називають його суперкласом. У черговому прикладі показано, як
розширити клас Point таким чином, щоб включити в нього третю
координату z.
class Point3D extends Point { int z;
Point3D(int x, int y, int z) {
this.x = x;
this.у = у;
this.z = z; }
Point3D() {
this(-1,-1,-1);
} }
У цьому прикладі ключове слово extends використовується
для того, щоб повідомити транслятору про намір створити
підклас класу Point. Як бачите, у цьому класі не знадобилося
повідомляти змінні х и у, оскількі Point3D успадкував їх від
свого суперкласу Point.
Увага!
Ймовірно, програмісти, знайомі з C++, очевидно очікують,
що сей-година ми почнемо обговорювати концепцію
множинного спадкування. Під множинним спадкуванням
розуміється створення класу, що має кілька суперкласів. Однак
у мові Java заради забезпечення високої продуктивності і
більшої ясності вихідного коду множинне спадкування
реалізоване не було. У більшості випадків, коли потрібно
множинне спадкування, проблему можна вирішити за
допомогою наявного в Java механізму інтерфейсів, описаного в
наступній лекції.
15