Java - статически типизированный язык.
Это означает, что компилятор проверяет, есть ли у типа переменной метод, который вы пытаетесь вызвать.
Тип вашей переменной b
равен Ball
. Ball
не имеет riseBall
метода.
Это означает, что ваш код потерпит крах, если только b
во время выполнения не содержит Softball
(что компилятор не может гарантировать). Возможно, вы знаете, что это так, но вам также нужно убедить компилятор (т.е. дать вашим переменным необходимые типы).