B
уже имеет отношение is-a к A
.Вам не нужно разыгрывать его .... Вы можете бросить B любым методом или ссылкой, которые ожидают / указывают на A
.
На основании вашего редактирования - что-то не так с вашимдизайн, если вы хотите сделать это.В то время как B
является A
, обратное НЕ верно.A
не является B
.Другими словами, поскольку B
расширяет A
, возможно, в нем есть методы / свойства, которые НЕ определены в A
.Если вы приведете A
к B
, то методы, которые принимают эту ссылку, могут попытаться вызвать метод, который, по его мнению, находится в экземпляре, поскольку вы сказали компилятору, что он получил B
, хотя в действительности базовыйA
не имеет требуемого метода.
Приведение здесь приводит только к боли и неудаче.