Smalltalk в примерах/Основы: различия между версиями

Содержимое удалено Содержимое добавлено
Строка 110:
==Полиморфизм==
 
Помните что сообщения <tt>добавитьadd:</tt> различны для УпорядоченнойСовокупностиOrderedCollection и для СортированойСовокупностиSortedCollection? Есть другие типы совокупностей таких как Множество, Мешок, СвязаныйСписок каждая из которых определяет свою собственную версию <tt>добавить:</tt>.
 
Это означает что вы можете использовать совокупность и не заботиться о том какого она типа; вы просто посылаете сообщение <tt>добавить:</tt> и она добавляет объект в себя правильным образом. Другим примером может быть окно которое показывает графические объекты. Вместо того чтобы знать о том как изображать окружность и квадрат, окно должно просто послать сообщение графическому объекту ( например: <tt>графическийОбъект изобразиСебяНа: сам</tt>). графическийОбъект может быть квадратом или окружностью, но для окна это не важно. Оно просто посылает одинаковые сообщения независимо от типа объекта, и полагает что графическийОбъект знает как изобразить себя. На процедурном языке вы можете написать приблизительно так: