65
лостность предметной области объектов и их интерфейсов, а также удобство
их проектирования, обеспечивается наследованием. Объект – это сущность, эк-
земпляр класса, которой можно посылать сообщения, и которая может на них
реагировать, используя свои данные. Данные объекта скрыты от остальной про-
граммы. Сокрытие данных называется инкапсуляцией. Наличие инкапсуляции
достаточно для объектности языка программирования, но ещё не означает его
объектной ориентированности – для этого требуется наличие наследования. Но
даже наличие инкапсуляции и наследования не делает язык программирования
в полной мере объектным с точки зрения ООП. Основные преимущества ООП
проявляются только в том случае, когда в языке программирования реализо-
ван полиморфизм; то есть возможность объектов с одинаковой спецификацией
иметь различную реализацию. Абстрагирование – это способ выделить набор
значимых характеристик объекта, исключая из рассмотрения не значимые Соот-
ветственно, абстракция – это набор всех таких характеристик. Инкапсуляция –
это свойство системы, позволяющее объединить данные и методы, работающие с
ними в классе, и скрыть детали реализации от пользователя. Наследование – это
свойство системы, позволяющее описать новый класс на основе уже существу-
ющего с частично или полностью заимствующейся функциональностью. Класс,
от которого производится наследование, называется базовым, родительским
или суперклассом. Новый класс – потомком, наследником или производным
классом Полиморфизм – это свойство системы использовать объекты с одина-
ковым интерфейсом без информации о типе и внутренней структуре объекта.
Инкапсуляция позволит скрыть детали реализации, и открыть только то что
необходимо в последующем использовании. Другими словами инкапсуляция
– это механизм контроля доступа. Цель инкапсуляции – уйти от зависимости
внешнего интерфейса класса (то, что могут использовать другие классы) от ре-
ализации. Чтобы малейшее изменение в классе не влекло за собой изменение
внешнего поведения класса. Существует 4 вида модификаторов доступа: public,
protected, private и default. Public – уровень предполагает доступ к компоненту