Форум программистов, компьютерный форум CyberForum.ru

Чем полиморфизм отличается от принципа подстановки - C++

Восстановить пароль Регистрация
 
the Cat
 Аватар для the Cat
0 / 0 / 0
Регистрация: 04.12.2010
Сообщений: 4
14.12.2010, 09:45     Чем полиморфизм отличается от принципа подстановки #1
Собсна, такой вопрос по сабжу задали в контрольной работе по ооп.
Буду благодарна за помощь.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.12.2010, 09:45     Чем полиморфизм отличается от принципа подстановки
Посмотрите здесь:

C++ от Borland C++ Builder чем отличается? C++
C++ Чем отличается С++ от Visual С++?
Чем отличается vector<> от set<> а? C++
Чем отличается ln , lg, и log ? C++
C++ Чем отличается this от *this?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
lemegeton
 Аватар для lemegeton
2908 / 1337 / 133
Регистрация: 29.11.2010
Сообщений: 2,720
14.12.2010, 13:32     Чем полиморфизм отличается от принципа подстановки #2
Ну если совсем уж в двух словах.

Полиморфизм это возможность классов иметь разную реализацию одного и того же функционала в основном с помощью наследования. Это механизм.

Очень упрощенно, принцип подстановки Барбары Лински говорит о том, что в хорошем коде все методы класса-потомка должны быть применимы к объекту класса родителя. Это "правило хорошего кода".
Mr.X
Эксперт С++
 Аватар для Mr.X
2797 / 1573 / 246
Регистрация: 03.05.2010
Сообщений: 3,649
14.12.2010, 15:57     Чем полиморфизм отличается от принципа подстановки #3
Цитата Сообщение от lemegeton Посмотреть сообщение
Очень упрощенно, принцип подстановки Барбары Лински говорит о том, что в хорошем коде все методы класса-потомка должны быть применимы к объекту класса родителя.
Немножко наоборот.
the Cat
 Аватар для the Cat
0 / 0 / 0
Регистрация: 04.12.2010
Сообщений: 4
14.12.2010, 17:55  [ТС]     Чем полиморфизм отличается от принципа подстановки #4
Тогда не является ли подстановка реализацией полиморфизма?
lemegeton
 Аватар для lemegeton
2908 / 1337 / 133
Регистрация: 29.11.2010
Сообщений: 2,720
14.12.2010, 18:15     Чем полиморфизм отличается от принципа подстановки #5
Принцип подстановки это как "правило хорошего кода", правило хорошего полиморфизма, на минуточку.
Mr.X
Эксперт С++
 Аватар для Mr.X
2797 / 1573 / 246
Регистрация: 03.05.2010
Сообщений: 3,649
14.12.2010, 20:31     Чем полиморфизм отличается от принципа подстановки #6
Цитата Сообщение от the Cat Посмотреть сообщение
Тогда не является ли подстановка реализацией полиморфизма?
Сам вопрос некорректен, так как здесь сравнивается кислое и квадратное. Согласно Википедии, полиморфизм - это возможность объектов с одинаковой спецификацией иметь различную реализацию.
А одинаковая спецификация – это реализация принципа подстановки, т.е. принцип подстановки характеризует спецификацию классов, а полиморфизм – их поведение.

Добавлено через 1 час 58 минут
Не, вообще-то в принципе подстановки тоже о поведении говорится. В Википедии написано: «Этот принцип является важнейшим критерием для оценки качества принимаемых решений при построении иерархий наследования. Сформулировать его можно в виде простого правила: тип S будет подтипом Т тогда и только тогда, когда каждому объекту oS типа S соответствует некий объект oT типа T таким образом, что для всех программ P, реализованных в терминах T, поведение P не будет меняться, если oT заменить на oS.»
Т.е. принцип подстановки выполняется, если объект предка, содержащийся в объекте потомка, ведет себя так же, как и чистый объект предка, т.е. изменение поведения наращиватся только за счет дополнительных свойств.
В общем, надо подробнее обдумать это дело.
Yandex
Объявления
14.12.2010, 20:31     Чем полиморфизм отличается от принципа подстановки
Ответ Создать тему
Опции темы

Текущее время: 13:46. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru