Java中的父类/子类相互转化问题:
如:
public class A { public void m() { } }
public class B extends A { public void m() { } public void m2() { } }
A a1 = new A(); B b1 = new B();
// 子类转父类
A a2 = (A) b1;
a2.m(); // a2可以调用A(子类)中定义的方法,调用a2.m2()报错
// 父类转子类
B b2 = (B) a2; // 必须a2是B对象时才可以成功转化,否则报错
b2.m(); b2.m2();
原文:https://www.cnblogs.com/caidi/p/10483403.html