Да это лекция с JR, там приведен пример преобразования по типу:
Object o = 123f;
Float s2 = (Float) o;
Но не указано в каких случаях это используется и зачем ВООБЩЕ это нужно
Как тебе уже пояснили:
Допустим есть класс Person и метод, который принимает объект класса Person. В этот метод можно передать и Person, и его наследников, например Man, Woman. А если бы восхождения небыло, то пришлось бы писать 3 перегруженых метода для каждого из типов.