这个其实,你可以这么理解
比如说宠物类是A,
狗狗类是B
你现在有一只狗狗。
你可以这样说
宠物类 我的狗狗=new 宠物类
A a=new A();
当然也可以这样理解
宠物类 我的狗狗=new 狗狗类
A b=new B();
这是继承的两种转型关系。
1.子类可以直接转化成父类
因为子类具有父类属性
也就是说在任何的情况下
B b =new B();
A a=(A)b,是没有问题的。
2.父类不可以直接转化成子类,特别是子类有特有方法的时候。所以父类直接转代成子类可能会报错,并不是一定会成功的。
再回来看这题。
在这里的话,因为没有特别去写,所以是可以的。但是不够严谨。
一般要跟上instanceof运算符来判断下。
if(A instanceof B){
B b=(B)a
}