Я учусь на сертификат JAVA Programmer I, и среди вопросов есть один, который я не могу понять:
//Given:
interface I{}
class A implements I{}
class B extends A {}
class C extends B{}
//and
A a = new A();
B b = new B();
Определение параметров, которые будут скомпилированы и запущены без ошибок.
A. a = (B)(I)b;
B. b = (B)(I)a;
C. a = (I)b;
D. I i = (C)a;
Теперь я знаю, что ответ А), но я не понимаю, если класс В является потомком класса А, тогда «а» может быть равен «б» без приведения, почему ответ Б)неправильно?Что означает даже литье (B) (I)?