Can a subclass type variable refer to a superclass object?
在Java的类层次结构中,可以以这样的方式初始化对象吗?
1 | subclass object = new superclass(); |
这假设子类和超类都有适当的构造函数,可以编译,等等。这种类型的对象构造是可能的吗?
不,只有另一条路。当您有一个类的对象时,您可以通过引用同一个类或父类来引用它,而不是相反。这可能与Java无关。否则就没有意义了。假设你有
1 2 3 4 5 6 7 | class SuperClass { public void method1() {}; } class SubClass { public void method2() {}; } |
如果你这样做了
1 | SubClass object = new SuperClass(); |
然后
1 | object.method2(); |
从理论上讲,它应该编译,因为引用的类型是子类,但是对象的类型是超类,所以它不会有这样的方法。