考虑以下代码:

    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/

10-10 13:34