Иногда вы хотите сослаться на объект в более общем смысле.Большинство людей понимают пользовательские интерфейсы, поэтому вот базовый пример:
Предположим, у вас есть экран, на котором вы хотите, чтобы все элементы управления были отключены до некоторой реплики, т.е.пользователь заполняет некоторый начальный ввод.Элементами управления могут быть такие элементы, как текстовые поля, комбинированные списки (раскрывающиеся списки) или кнопки.Вы можете сослаться на все вышеперечисленное одним махом, рассматривая их как элементы управления.
Вы можете написать код, подобный следующему:
foreach(Control c in MyForm.Controls)c.Enabled = false;
Это один из примеров, но как только вы начнетепрограммируя больше, вы увидите, что это довольно базовая часть вашего объектно-ориентированного существования.
Одним из мест, где можно увидеть большинство объектно-ориентированных библиотек базовых классов, использующих этот метод, является ввод-вывод - все библиотеки ввода и вывода доступны.В самом абстрактном смысле у вас будет Stream, но когда вы посмотрите на иерархию классов, вы увидите полиморфные вариации концепции Stream: файловый поток, сетевой поток и так далее.Чтение и запись потоковых реализаций будут выполняться с помощью «Readers» и «Writers» соответственно.Выполнение некоторых основных задач программирования даст вам действительно хорошее представление о том, насколько полезен этот полиморфизм.Например, написание кода, который читает из потока, а затем абстрагирует его, чтобы он мог применяться к любой реализации потока, которую он передает.
Одна вещь, которую я всегда пытаюсь предложить людям, - это изучить встроенные библиотеки, чтобы увидеть, как разработчики фреймворков и программисты эффективно применяют подобные методы для практического повседневного использования.