Цитата:
Сообщение от wisconsin
я не разобрался с примером, просто я не все изучил и есть в этом примере вещи мне непонятные
может есть какая-нибудь метафора для объяснения полиморфизма и динам связ
|
с метафорами еще хуже, чем с теорией

геометрическая фигура (Figure) может быть всякой, что и описываем в наследниках (Circle и Square)
в моем примере это вычисление площади, в базовом классе пустышка (необязательно, но здесь так уж вышло), для круга и квадрата своя конкретика, реализация area() для каждого своя - полиморфизм
теперь такие ситуации:
1)работаем конкретно с кругом,
создаем экземпляр и вычисляем его площадь

Код AS3:
var circle:Circle = new Circle();
var circleArea:Number = circle.area();
компилятор заведомо знает метод какого класса вызывается - статическое связывание
2)работаем с любой фигурой
вычисляем, например объем 3d-плюшки, выдавленной из фигуры

Код AS3:
function calcVolume(fig:Figure, height:Number):Number
{
return height * fig.area();
}
компилятор не знает, какая фигура (экземпляр какого класса) будет передана в метод, но сработает fig.area(), соответствующий именно типу (классу) этого экземпляра - динамическое связывание