Цитата:
Сообщение от Просто инженер АиТ
Для начала...
|
Какой то у вас сразу замес наследования с полиморфизмом произошел.
Если говорить только о наследовании, то можно проще:
Запускаем завод по производству машин. Есть, например, абстрактный класс(абстрактный - это значит что нельзя создать объект этого класса) МАШИНА. Мы берем и описываем подробно описываем что в нем есть поля: КОЛЕСА 4 ШТУКИ, ЦВЕТ, ТИП КУЗОВА и т.д.
Далее берем и создаем класс ЛЕГКОВОЙ АВТОМОБИЛЬ, который наследуется от класса МАШИНА и сразу же имеет поля КОЛЕСА и т.д. + дополняется своими полями, например КОЖАНЫЙ САЛОН, КОРОБКА АВТОМАТ и т.п.
Потом вдруг перепрофилировались и начали выпускать грузовые машины, тогда создает класса ГРУЗОВИК и наследуемся от класса МАШИНА + опять дополняем своими полями ТЕНТ, МОЩНЫЙ ДВИГАТЕЛЬ и т.п.
Т.е. мы в обоих случаях использовали старый код, не писав его заново, как это было бы в функциональном программировании, когда мы должны были бы описывать каждый объект с нуля, не используя "старые" созданные поля.
Если бы можно было создавать объект абстратного класса, то у нас бы просто с конвейера выпало 4 колеса, синий цвет, и какой-нибудь кузов...
Lamaks добавил 29.05.2015 в 15:14
Про инкапсуляцию:
Вы создали класса МАШИНА и вы даете пользователю только одну педаль - педаль газа, т.е. водитель через педаль регулирует скорость автомобиля, а не сам влезает под капот и копается в двигателе для увеличения скорости. Иными словами водитель не знает что происходит в двигателе, он знает что есть методы УВЕЛИЧИТЬ СКОРОСТЬ и УМЕНЬШИТЬ СКОРОСТЬ и все, а вся реализация от него скрыта. Так вот сокрытие реализации от пользователя и есть ИНКАПСУЛЯЦИЯ.
Про Полиморфизм:
В гараже стоит три машины СКОРАЯ, ПОЖАРНАЯ, МИЛИЦИЯ. Диспетчер говорит через громкоговоритель "Горит дом по улице Гороховая 137" и автоматически выезжает ПОЖАРНАЯ. Реализация этого, т.е. когда диспетчер говорит что случилось, а уже автоматически определяется кто едет на вызов и есть ПОЛИМОРФИЗМ.
ООП и строится на трех китах - инкапсуляция, наследование и полиморфизм.