Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Повторное использование реализации






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-виртуальные (термин С++). Это реализуется путем позднего связывания.

Позднее(или динамическое) связывание: код метода подставляется в нужное место не во время компиляции, а во время исполнения. Подстановка во время компиляции – это раннее (или статическое) связывание.






© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.