请考虑以下代码:
public interface Vegetarian{}
public class Animal{}
public class Deer extends Animal implements Vegetarian{}
Deer d = new Deer();
Animal a = d;
在这个例子中,Animal
是一个基类,Deer
是一个子类,我正在为Deer
类的对象分配一个Animal
对象,所以对象'一个'是指Deer
的对象(即' d')。我的问题是我可以写反之亦然,如下所示?
Deer d = a;
答案 0 :(得分:1)
您可以使用显式强制转换来执行此操作,但如果a
未引用实际的Deer
,则会抛出ClassCastException。
Deer d = (Deer) a;