请考虑以下代码段:
SuperClass superClass = new SubClass(); // Instantiating SuperClass reference
SubClass subClass = new SubClass(); // Instantiating SubClass reference
如果我列出superClass
对象的字段/方法,我只能看到SuperClass中的方法。然后是什么区别:
SuperClass superClass = new SubClass();
和
SuperClass superClass = new SuperClass();
我知道这可能是多态的情况,我可以使用SubClass
引用,SubClass
IS-A SuperClass
,但为什么我会使用SubClass
引用是否要实例化SuperClass
,因为我通过SuperClass
实例化获取相同的字段/方法?
我已经看过这个问题,但我仍然感到困惑。 Using superclass to initialise a subclass object java
编辑:我不是在谈论接口。我知道接口,我们可以使用它们来分配实现它们的类的对象。我只谈论超类。
对此有任何帮助将不胜感激。
答案 0 :(得分:2)
创建SubClass
SuperClass superClass = new SubClass();
您可以将superClass
投射到SubClass
并访问SubClass
的方法。创建SuperClass
的实例时,您无法执行此操作。
此外,当SuperClass
覆盖这些方法时,在SubClass
实例上调用SubClass
方法会执行SubClass
方法。