public class A {
void metodo() {
System.out.println("A");
}
}
public class B extends A {
void metodo() {
System.out.println("B");
}
}
public class Main {
public static void main(String[] args) {
A a = new A();
B b = new B();
B b1 = (B) new A();
a.metodo();
b.metodo();
b1.metodo();
}
}
Gostaria de saber porque a linha B b1 = (B) new A(); da erro de execução. Alguém poderia me tirar essa dúvida?
Complementando a resposta do @lvbarbosa, uma forma fácil de você entender quando pode ou não pode fazer o cast de um tipo de um objeto de um tipo de dado para um outro tipoé fazer a seguinte pergunta:
O tipo A é um tipo B?
Se for, então pode fazer cast.