Colegas surgiu uma dúvida em uma questão e gostaria de algum esclarecimento já que estou estudando sozinho :
Segue a questão :
interface Inter{}
class Base implements Inter{}
class Derived extends Base{}
public class Test {
public static void main(String[] args) {
Base b = new Base();
Derived d = new Derived();
Inter i = (Base)b;
i = (Base)d;
Derived dd = (Derived) b; //3
b = (Base) i; // 4
}
a resposta para esta questão eu entendi que é um ClassCastException em tempo de execução na LINHA 3 pois esta tentando colocar Base em Derived !
Mas a minha dúvida é nao seria também erro na linha 4 ja que está tentando também colocar Inter dentro de Base - REDUÇÃO !
Fiz no micro e realmente passou a linha 4 mas eu nao entendi por que pois está havendo redução nas duas linhas 3 e 4 !
Troquei a interface (Inter) por uma classe mas também passou 
Não entendi o por quê ?
Alguem saberia me explicar ?
vimieiro