考虑以下代码:
public interface Vegetarian{}
public class Animal{}
public class Deer extends Animal implements Vegetarian{}
Deer d = new Deer();
Animal a = d;
在此示例中,
Animal
是基类,而Deer
是子类,我将Deer
对象分配给Animal
类的对象,因此对象'a'引用了Deer
的对象(即“ d”)。我的问题是,我可以这样写吗? Deer d = a;
最佳答案
您可以使用显式强制转换来执行此操作,但是如果a
不引用实际的Deer
,它将引发ClassCastException。
Deer d = (Deer) a;
关于java - 我可以将基类的对象分配给其子类的对象吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26836889/