Наследование позволяет создавать новые классы, повторно используя уже готовый исходный код и не тратя времени на его переписывание
Наследование — это свойство классов создавать из базовых классов производные, которые наследуют свойства базовых классов и могут содержать новые элементы данных и методы. Наследование позволяет создавать иерархии классов и является эффективным средством внесения изменений и дополнений в программы.
Например, класс «животное», имеет свойства «название», «размер», «методы», «идти», «размножатся» Созданный на его основе класс «кошка» содержит все эти свойства и методы, к которым дополнительно добавляется свойство «окраска» и метод «пить».
Порожденный класс автоматически наследует методы и свойства родителя и может добавлять новые. Таким образом, принцип наследования обеспечивает поэтапное создание сложных классов и разработку собственных библиотек классов.
Полиморфизм
Полиморфизм означает возможность одной операции или имени функции ссылаться на любое количество определений функций, зависящих от типа данных параметров и результатов. Это свойство объектно-ориентированных языков программирования обеспечивается динамическим связыванием сообщений (вызовов методов) с определениями методов.
В большинстве случаев методы базового класса у классов-наследников приходится переопределять - объект класса «кошка» выполняет метод «идти» совсем не так как объект класса «амеба». Все переопределяемые методы по написанию (названию) будут совпадать с методами базового объекта, однако компилятор по типу объекта (его классу) распознает, какой конкретно метод надо использовать, и не вызовет для объекта класса «кошка» метод «идти» класса «животное». Такое свойство объектов переопределять методы наследуемого класса и корректно их использовать называется полиморфизмом.
Полиморфизм - это свойство классов решать схожие по смыслу проблемы разными способами. Полиморфизм дает возможность определение единого по имени действия (процедуры или функции), применимого одновременно по всем объектам иерархии наследования, причем для каждого объекта учитывается особенности реализации данного действия.
Полиморфизм (от греч. «многоликость») — механизм, допускающий возможность использования одинаковых имен для разных методов обработки данных различных типов. Основная идея этого механизма состоит в том, что он позволяет создавать стандартные интерфейсы для схожих методов обработки разных объектов. Благодаря полиморфизму в ООП обработка объектов упрощается, так как одинаковым действиям объектов соответствуют одноименные методы.
В рамках Deiphi свойство класса определяется набором входящих в него методов. Изменяя алгоритм того или иного метода в потомках класса, программист может придавать этим потомкам отсутствующие у родителя специфические свойства. Для изменения метода необходимо «перекрыть» его в потомке, т.е. объявить в потомке одноименный метод и реализовать в нем нужные действия. В результате в объекте - родителе, объекте - потомке будут действовать два одноименных метода, имеющие разную алгоритмическую основу и, следовательно, придающие объектам разные свойства. Это и называется полиморфизмом объектов.
Идеи ООП проникли во многие процедурные языки. Например, в состав интегрированной системы программирования Паскаль (корпорации Borland International), начиная с версии 5.5, входит специальная библиотека ООП Turbo Vision.
С середины 90-х гг. многие объектно-ориентированные языки реализуются как системы визуального программирования. Такие системы имеют интерфейс, позволяющий при составлении текста программы видеть те графические объекты, для которых она пишется. Отличительной особенностью этих систем является наличие в них среды разработки программ из готовых «строительных блоков», позволяющих создавать интерфейсную часть программного продукта в диалоговом режиме, практически без написания программных операций. Система берет на себя значительную часть работы по управлению компьютером, что делает возможным в простых случаях обходиться без особых знаний о деталях ее работы. Она сама пишет значительную часть текста программы: описания объектов, заголовки процедур и многое другое. Программисту остается только вписать необходимые строчки, определяющие индивидуальное поведение программы, которые система не в состоянии предвидеть. Но даже в этих случаях система сама указывает место для размещения таких строк. К объектно-ориентированным системам визуального проектирования относятся: Visual Basic, Delphi, C++ Builder, Visual C++. Это системы программирования самого высокого уровня.
VBA (Visual Basic for Application) является общей языковой платформой для приложений Microsoft Office (Excel, Word, Power Point и др.). VBA соблюдает основной синтаксис и правила программирования языков Бейсик-диалектов. VBA помогает довольно сильно расширить возможности приложений за счет написания макросов — программ, предназначенных для автоматизации выполнения многих операций. VBA позволяет создавать объекты управления графического интерфейса пользователя, задавать и изменять свойства объектов, подключать к ним необходимый для конкретного случая программный код. С помощью VBA можно производить интеграцию между различными программными продуктами. Программы на языке VBA для приложений создаются двумя способами: в автоматическом режиме как результат построения клавишной макрокоманды или путем написания программного кода.
Контрольные вопросы
1. Что такое машинный код?
2. Охарактеризуйте язык Ассемблер.
3. Дайте определения понятиям «алфавит», «словарный запас», «грамматика», «синтаксис», «семантика».
4. Чем отличаются языки низкого уровня от языков высокого уровня?
5. Назовите принципы структурированного программирования и охарактеризуйте их.
6. Перечислите свойства языков программирования.
7. Дайте классификацию языков программирования.
8. Охарактеризуйте основные конструкции программирования.
9. Перечислите инструкции в Visual Basic.
10. Назовите типы переменных в Visual Basic.
11. Как происходит объявления переменных в Visual Basic?
12. Опишите константы в Visual Basic.
13. Какие парадигмы программирования Вы знаете?
14. Дать характеристику императивным языкам.
15. Опишите языки функционального программирования.
16. Охарактеризуйте декларативные языки программирования.
17. Что лежит в основе объектно-ориентированного программирования?
18. Дать понятия «объект», «свойства», «методы» и «события».
19. На каких принципах базируется объектно-ориентированное программирование? Дать им характеристику и привести примеры.
20. Что за системы визуального программирования?