说,我有两个类定义,Super
和Sub
和Sub
是Super
一个子类:超类引用变量所持有的引用的类型是什么?
public class Super {}
public class Sub extends Super {}
我知道它是合法执行以下操作:
Super s = new Sub();
我的问题,虽然,编译器认为s
中的参考文献是什么?它是否认为它只是Super
类型的参考,还是它知道它实际上是Sub
类型的参考。我已经四处寻找类似的问题的答案,但还没有发现任何真正的权威。谢谢!
编译thinka超级只有 – Panther
没有@Manishsakpal编译器只知道变量类型是超级。没有实际的对象 – Panther
是@panther我知道编译器意识到只有变量类型是Super,但我忘了提及,在运行时这是引用Sub类型的对象。抱歉,是我的错。 –