Что такое приведение интерфейса в C # ?

Я понимаю, как написание интерфейса работает на C #, как, например, описано здесь: объяснение codeguru

interface IIntelligence
   {
      bool intelligent_behavior();
   }

   class Human: IIntelligence
   {
      public Human()
      {
          //.............
      }

/// Interface method definition in the class that implements it
      public bool intelligent_behavior()
      {
         Console.WriteLine("........");
         return true
      }
   }

Однако меня смущает следующий процесс преобразования интерфейса:

Human human = new Human();
// The human object is casted to the interface type
IIntelligence humanIQ = (IIntelligence)human;
humanIQ.intelligent_behavior();

В чем смысл того, что класс ( Human в данном случае) реализует интерфейс, а затем преобразование его экземпляр человек обратно в интерфейс? Вопрос не в том, как это работает, а в том, почему это делается.

6
задан user748261 11 May 2011 в 08:37
поделиться