![]() Главная страница Случайная страница КАТЕГОРИИ: АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
Повторное использование реализации
1) Можно использовать, непосредственно создавая объект (как локальную переменную). 2) Композиция или агрегирование. Помещаем объект во внутрь нового класса. Объект – поле нового класса. Класс – автомобиль. Класс – двигатель помещается в виде поля в класс автомобиль.
3) Наследование
Базовый тип содержит поля и методы общие для всех производных типов (характеристики и действия).
Пример:
Новый тип (дочерний) повторяет интерфейс родителя. Он гарантировано принимает те же сообщения. Кроме этого в производный класс включаются новые методы либо изменяются методы базового класса (переопределение (overriding) или замещение метода). 4) Полиморфизм С объектом производного класса можно обращаться как с базовым. Это позволяет легко модифицировать программы. Например, метод:
void doStuff (Shape shape) { shape.erasе (); … shape.draw (); } Другая часть программы: Circle circle = new Circle (); Triangle triangle = new Triangle (); Square square = new Square (); doStuff (circle); doStuff (triangle); doStuff (square);
Обращение с производными типом как с базовым называется восходящим преобразованием – апкастинг (upcasting). Вызовы работают правильно, будут вызваны методы нужного объекта. Все методы в Java-виртуальные (термин С++). Это реализуется путем позднего связывания. Позднее(или динамическое) связывание: код метода подставляется в нужное место не во время компиляции, а во время исполнения. Подстановка во время компиляции – это раннее (или статическое) связывание.
|