У меня был экзамен в колледже по объектно-ориентированному программированию. Один из вопросов касался статической привязки и динамического связывания.Статическое связывание и динамическое связывание без методов
Вопрос был следующим:
Shape s; if(i==1) s = new Point(1,2); else s = new Rectange(10,20); //this is dynamic binding.
ДА/НЕТ это не мой ответ кстати.
Мой учитель сказал, что ответ «нет», потому что это статическая привязка.
Как я знаю, статическая привязка и динамическое связывание случаются только при вызове методов. Я прочитал все вопросы StackOverflow и много сообщений в блоге по этой теме, и единственный ответ, который я могу придумать, заключается в том, что есть динамическое связывание.
Любое объяснение будет оценено.
Вы жестко запрограммировали, что '' 'относится либо к экземпляру' Point', либо к экземпляру 'Rectangle' ... что такое _dynamic_? – Tom
Это только предположение, но, возможно, то, что ваш учитель имел в виду, это то, что возможные типы известны во время компиляции. Невозможно ввести новый, неизвестный тип во время выполнения, как это было бы, если бы вы использовали отражение для создания объекта. – erickson