> -- Geniepro писал(а):
> Есть разные взгляды на реализацию полиморфизма.В хаскелле, например, есть классы типов, и функция сортировки списков, например, будет сортировать списки со значениями любых типов, для которых реализован интерфейс класса Ord, в котором определены операции сравнения больше-меньше.И тут делегаты получаются ненужными -- в типе функции закодировано требование, что элементы сортируемого списка должны иметь операцию сравнения.Просто и безопасно, со статической проверкой.

При таком подходе, кстати, и расширение-наследование вообще становится ненужным. Остаётся одна композиция: скомпоновали класс как реализацию нескольких интерфейсов. А интерфейсам расширяться тоже не нужно, просто вводим дополняющие интерфейсы. Как это был в COM, кстати.

Такой подход очень неплох для прикладного уровня, уже надязыкового (уровень хранимых объектов ИС и т.п.).

Ну а в языке лучше всё-таки маневрировать на уровне Оберона - все механизмы ООП по отдельности.