История изменений
Исправление mono, (текущая версия) :
Потому что статическая типизация. Ты должен явно указывать тип, при приведении. Откуда компилятор может знать легален каст или нет? Делая явное указание типа ты соглашаешься с тем, что знаешь, что делаешь.
В случае если ты приводишь ArrayList к List, например, то там уже включается полиморфизм из ООП, но это упрощение.
Исходная версия mono, :
Потому что статическая типизация. Ты должен явно указывать тип, при приведении. Откуда компилятор может знать легален каст или нет? Делая явное приведение типа ты соглашаешься с тем, что знаешь, что делаешь.
В случае если ты приводишь ArrayList к List, например, то там уже включается полиморфизм из ООП, но это упрощение.