Я понимаю, как написание интерфейса работает на 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 в данном случае) реализует интерфейс, а затем преобразование его экземпляр человек обратно в интерфейс? Вопрос не в том, как это работает, а в том, почему это делается.