Если я прав в том, что Upcast и Downcast нужны для преобразования класса к другому классу (или объекты класса) как это получается с типами (например, int num = (int)double;), то я, наверное, прав.
А когда их использовать? Я даже не понимаю как их применить на практике, так как в голову ничего из применения апкастов и довнкастов не приходит. Если я редко использую преобразование типов, то преобразование объектов классов вряд ли когда еще могу использовать. Тогда, почему это такая "Очень важная тема"?
Кроме получения ссылки на объект больше нет применения, походу.
Как я могу понять где апкасты и довнкасты могут пригодиться, если даже на практике их не понятно как применить, и как придумать задание для практики?
edward_freedom, О, я понял (наверное). Благодаря апкастам и довнкастам можно убирать лишнюю логику или члены класса и использовать только то, что есть у класса, к которому производят, так еще можно и данные с производного класса получить