Для новичков, попробую объяснить ООП на пальцах, так сказать "ООП за три минуты"
Исходная задача - описать рубку дров.
Имеем класс Рубка_дров, который состоит из следующих вещей:
Дрова, Топор, Двор - это наши объекты для рубки дров
Рубить_дрова, Складывать_дрова, Носить_дрова - это методы работы с объектами класса (по сути функции или процедуры)
Описание нашего класса будет состоять из трех частей:
1)
ЗАЩИЩЕННОЙ - здесь мы будем описывать вещи и методы, которые хотим видеть и пользовать
только мы. Предположим, мы стесняемся показать где у нас лежат дрова или просто не хотим чтобы соседи видели куда мы их носим, поэтому метод Складывать_дрова в нашем случае будет приватным, т.е. видимы только нам. Объект Двор так же является защищенным.
2)
ПРИВАТНОЙ - вещи и методы которыми мы будем пользоваться только внутри нашего конкретного класса. Например - топор (могу дать соседу порубить дрова, если у него тоже будет класс Рубка_дров, происходящий из моего). Метод Носить_дрова будет приватным, потому что мы не хотим чтобы кто то вне нашего класса нам указывал КУДА носить эти дрова.
3)
ПУБЛИЧНОЙ - здесь описываются вещи которые доступны всем. Например Дровами мы можем поделиться с соседом, если он хочет помочь порубить их.
Класс Рубка_дров
Запишем определение класса на нашем "птичьем" языке программирования:
Код:
Класс Рубка_дров
НАЧАЛО определения
ЗАЩИЩЕННАЯ секция
Двор: объект
метод Складывать_дрова ()
ПРИВАТНАЯ секция
Топор: объект
метод Носить_дрова ()
ПУБЛИЧНАЯ секция
Дрова: объект
метод Рубить_дрова
КОНЕЦ определения
Смешивание в один класс объектов и методов работы над/с ними называется ИНКАПСУЛЯЦИЕЙ.
Далее, мы можем соседу рассказать как мы рубим дрова, чтобы он сделал это так же. При этом сосед создает свой класс Рубка_дров, но с уже определенным методом Рубить_дрова (мы же ему рассказали КАК надо рубить дрова). Это называется НАСЛЕДОВАНИЕ.
Если соседу не нравится способ, которым мы рубим дрова и он хочет делать это, допустим, колуном, а не топором, он вводит в свой наследованный класс объект Колун и переопределяет метод Рубить_дрова на свой лад - возникает ПЕРЕЗАПИСАННЫЙ (overrided) метод.
Запишем определение соседского класса:
Код:
Класс Рубка_дров_соседа (НАСЛЕДОВАННЫЙ от Рубка_дров)
НАЧАЛО определения
ПРИВАТНАЯ секция
Колун: объект
ПУБЛИЧНАЯ секция
метод Рубить_дрова ПЕРЕЗАПИСАННЫЙ
КОНЕЦ определения
Поскольку класс для соседской рубки дров наследуемый, он "тянет" все недостающие методы и объекты (Двор, Носить_дрова и т.д.) из родительского.
спецы, дополняйте, поправляйте, я экспромтом писал, можно сказать на коленках