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
   12   13   14   15   16   17   18   19   20   21   22