Вкус ООП (продолжение).
Итак, мы определили понятия объекта и класса. ООП предполагает
моделирование программ в соответствии со следующими тремя концепциями
развития классов:
1) инкапсуляция (encapsulation)
2) наследование (inheritance)
3) полиморфизм (polymorphism)
Инкапсуляция предполагает сокрытие данных в объекте и предоставление
общедоступных функций управления ими. Таким образом, имея в распоряжении
некоторой объект, мы не можем непосредственно манипулировать его данными,
а лишь через предопределенный (при объявлении класса) набор функций. В
чем плюсы практики инкапсуляции? Во-первых, зачастую, при изменении
некоторых данных, требуется коррекция каких-то связанных с этими данными
данных. Так, например, в объекте содержащем массив имен и их число, при
удалении из списка имени нужно подкорректировать число элементов в массиве.
В этом случае инкапсуляция представляет удобный (нужно продумать один раз
при проектировании класса, его функций) и безопасный (безалаберный
программист не может разрушить данные, поскольку, не имея доступа к самим
данным вынужден пользоваться функциями предоставленными создателем класса).
Во-вторых, предоставляя только необходимый набор средств управления
данными, проектировщик класса оставляет на будущее возможность менять
структуру данных класса, оптимизировать и т.п.
Наследование классов-это,грубо говоря, заимствование классом свойств
(данных и функций) другого класса (базового). Иначе говоря, объявляя класс
A наследующим класс B, мы определяем в классе A все функции и данные
класса B. Само собой, мы можем дополнительно в A определить данные и
функции характерные только A. Так, например, если определен класс "птица"
содержащий все что нам нужно знать и делать с птицами, то можно
унаследовать от "птица" класс "попугай" дополнительно определив в нем
логическую(булевскую) переменную "говорит" которая содержит "да" или "нет"
взависимости от того говорит ли данный попугай.В остальном мы можем
обращаться с любой реализацией (объектом) класса "попугай" как с
любым объектом класса "птица".
Полиморфизм-способность объекта принимать "различные формы". Простейшим
примером полиморфизма является наследование "птица"->"попугай" и
"птица"->"орел". Как видим, здесь "птица" может быть "попугаем" или
"орлом". Т.о. от одного базового класса наследуются несколько других.
Если вам не понравилось написанное выше, то увы, для программирования на
объектно-ориентированном языке необходимо понять и прочувствовать эти
базовые концепции...