子类类型变量是否可以引用超类对象?

时间:2017-03-19 17:18:31

标签: java class-hierarchy

在Java的类层次结构中,是否可以以这种方式初始化对象?

subclass object = new superclass();

这假设子类和超类都有适当的构造函数,可以编译等。这种类型的对象构造是否可能?

1 个答案:

答案 0 :(得分:0)

没有。只有相反的方式。 当你有一个类的对象时,你可以通过引用同一个类或父类来引用它,而不是反过来。这可能与Java无关。 否则就没有意义了。假设你有

class SuperClass {
    public void method1() {};
}

class SubClass {
    public void method2() {};
}

如果你这样做

  SubClass object = new SuperClass();

然后

  object.method2();

然后理论上它应该编译,因为引用是SubClass类型,但对象是SuperClass类型,所以它不会有这样的方法。