Page 70 - 6253
P. 70

РОЗДІЛ 4

                                         ІЄРАРХІЯ КЛАСІВ ТА ПОЛІМОРФІЗМ


                    4.1. Наслідування



                    Однією  з  найбільших  переваг  об’єктно-орієнтованого  програмування  є

            багаторазове  використання  програмного  коду,  що  на  практиці  проявляється  у

            використанні  уже  існуючих  класів.  Існує  два  способи  реалізації  цієї  ідеї.  Перший

            полягає у створенні всередині нового класу об’єктів існуючих класів. Такий підхід

            називають  композицією.  Новий  клас  є  набором  об’єктів  і  фактично  використовує

            функціональність  існуючого  коду,  а  не  його  структуру.  Другий  підхід  полягає  у

            використанні структури існуючого класу, до якого додають новий код, при цьому не

            модифікуючи  існуючий.  Такий  підхід  у  концепції  об’єктно-орієнованого

            програмування  називають  наслідуванням  (inheritance).  Завдяки  наслідуванню

            будується ієрархія класів. Клас, від якого наслідують, називають базовим класом або

            суперкласом  (superclass),  а  клас  який  наслідує  називається  підкласом.  В  такому

            контексті підклас виступає спеціалізованою версією базового класу. Базовий клас і

            підклас є абсолютно самостійними класами. Підклас може виступати в ролі базового

            класу  для  іншого  класу  програми.  При  цьому  кожний  підклас  наслідує  всі

            властивості свого базового класу.

                    У  мові  Java  оголошення  класу,  який  наслідує  базовий  клас,  має  наступний

            вигляд:

                    class Ім’я_Підкласу extends Ім’я_Суперкласу {

                     //тіло класу

                    }

                    Для  того  щоб  вказати,  що  підклас  наслідує  базовий  клас  використовується

            ключове  слово  extends,  після  якого  іде  ім’я  суперкласу.  Проте,  навіть  без  явного

            вказування  імені  суперкласу,  усі  класи  в  мові  Java,  автоматично  наслідують  від

            кореневого класу з іменем Object.

                    Із підкласу можна отримати доступ до членів базового класу, які оголошені із

            модифікатором  доступу  public,  а  також  до  захищених  членів  базового  класу  з

            модифікатором  доступу  protected.  Члени  класу  з  модифікатором  доступу  private,




                                                              69
   65   66   67   68   69   70   71   72   73   74   75