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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
the Cat
 Аватар для the Cat
0 / 0 / 0
Регистрация: 04.12.2010
Сообщений: 4
#1

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

14.12.2010, 09:45. Просмотров 898. Ответов 5
Метки нет (Все метки)

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

C++ от Borland C++ Builder чем отличается? C++
C++ Чем отличается С++ от Visual С++?
Чем отличается ln , lg, и log ? C++
Чем отличается оператор цикла C++
C++ Чем отличается this от *this?
C++ Чем new отличается от malloc?
C++ Чем отличается Абстрагирование от Наследования?
Чем struct отличается от class? C++
Чем C++ отличается от C++ Builder? C++
C++ Чем отличается if от (?:)
C++ Чем отличается istringstream от stringstream?
Чем отличается override от virtual? C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
lemegeton
 Аватар для lemegeton
2915 / 1344 / 133
Регистрация: 29.11.2010
Сообщений: 2,720
14.12.2010, 13:32     Чем полиморфизм отличается от принципа подстановки #2
Ну если совсем уж в двух словах.

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

Очень упрощенно, принцип подстановки Барбары Лински говорит о том, что в хорошем коде все методы класса-потомка должны быть применимы к объекту класса родителя. Это "правило хорошего кода".
Mr.X
Эксперт С++
 Аватар для Mr.X
3021 / 1677 / 265
Регистрация: 03.05.2010
Сообщений: 3,867
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
2915 / 1344 / 133
Регистрация: 29.11.2010
Сообщений: 2,720
14.12.2010, 18:15     Чем полиморфизм отличается от принципа подстановки #5
Принцип подстановки это как "правило хорошего кода", правило хорошего полиморфизма, на минуточку.
Mr.X
Эксперт С++
 Аватар для Mr.X
3021 / 1677 / 265
Регистрация: 03.05.2010
Сообщений: 3,867
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     Чем полиморфизм отличается от принципа подстановки
Ответ Создать тему
Опции темы

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