По крайней мере, на Java, не совсем. Вы можете использовать только ребенка ожидаемого класса. Поэтому, если ваш класс возвращает RuntimeException, вы не можете привести его к String, и вам не нужно приводить его для доступа к нему как к исключению (это родитель).
Вам нужно только привести его, чтобы сказать, что вы знаете, что это на самом деле дочерний элемент / реализация RuntimeException, и вам нужно получить доступ к тому, что ребенок знает об этом RuntimeException, но не знает.
Тем не менее, слишком много кастинга - это неприятный запах. Вы должны получать доступ к уникальному коду ребенка почти исключительно через открытые методы родителя - если вы часто бросаете, возможно, вы забыли это правило.