Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ОТВЕТЫ к экз по ООП.docx
Скачиваний:
4
Добавлен:
17.07.2019
Размер:
40.99 Кб
Скачать
  1. Наследование

Наследование – это свойство системы, позволяющее описать новый класс на основе уже существующего с частично или полностью заимствующейся функциональностью. Класс, от которого производится наследование, называется базовым, родительским или суперклассом. Новый класс – потомком, наследником или производным классом.

Классы содержат данные и методы. В ООП методы и данные одного класса могут передаваться другим классам, т.е. объекты могут наследовать свойства друг друга. Класс наследует свойства другого класса, обладает теми же возможностями, что и класс, от которого он порожден. Этот принцип называется наследованием (inheritance). Порожденный класс называется потомком(descendant), а тот, от кого он порожден - предком (ancestor). Благодаря новым свойствам, которыми дополняется потомок, порожденный класс может обладать большими возможностями, чем его предок. Механизм наследования обеспечивает возможность многократного применения программного кода. Таким образом, классы могут быть представлены в виде иерархии. Библиотека VLC (Visual Component Library) в Delphi как раз и является такой иерархической системой классов.  Наследование - механизм, позволяющий объектам класса наследовать характеристики (данные и методы) более простых и общих типов (классов); - средство получения новых классов из существующих.

  1. Инкапсуляция

Инкапсуляция – это свойство системы, позволяющее объединить данные и методы, работающие с ними, в классе и скрыть детали реализации от пользователя.

Инкапсуляция (encapsulation) - объединение данных с функциями, предназначенными для манипулирования этими данными (т.е. поведением) в новом типе - КЛАССЕ . Пример. Представьте, что Вам надо написать программу, которая выполняла бы дует духового и струнного инструментов. Для этого определите классы Духовой инструмент и Струнный инструмент. Для класса Духовой инструмент определите, что имеется мундштук и что в него надо дуть, чтоб получить звук. Для класса Струнный инструмент определите, что по струнам надо ударять, чтоб получить звук. Оба класса уже способны "играть музыку", и что это свойство было унаследовано от предка. Они унаследовали метод PlayMusic, который был объявлен и реализован как метод класса Музыкальный инструмент. Таким образом, этот метод уже не нужно создавать, и Вам не надо знать код реализации метода, чтобы использовать его в двух новых классах. Способ, которым реализована возможность играть музыку, не важен. Этот принцип сокрытия информации (information hiding) характерен для инкапсуляции и существенно облегчает написание больших и стабильно работающих приложений. Если класс был грамотно сконструирован и тщательно проверен, он может многократно использоваться в различных приложениях. В примере с музыкальными инструментами это означает, что каждый класс обладает свойствами класса Музыкальный инструмент, а способы создания звука заключены внутри него. Эти способы невидимы и недоступны за пределами класса. Также подразумевается, что классы ничего не знают друг о друге. Они полностью разделены, и им не известны спецификации и свойства друг друга. Духовой инструмент закрыт для любых попыток других классов использовать его мундштук. Также и струны Струнного инструмента, и способ их использования заключены внутри него самого. Объект закрыт, т.е. окружение не может случайно изменить это объект. Смысл этой закрытости в том, что Вы не обязательно должны знать, как, например, Труба издает звук.