考虑以下代码片段:
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
呢?
我已经看到了这个问题,但我仍然感到困惑。使用超类初始化子类对象Java
编辑:我不是在这里谈论接口。我知道接口,我们可以使用它们来分配实现它们的类的对象。我说的只是超类。
任何帮助,将不胜感激。
当您创建的实例时 SubClass
SuperClass superClass = new SubClass();
您可以投射superClass
到SubClass
并使用的方法SubClass
。创建的实例时,您将无法执行此操作SuperClass
。
此外,SuperClass
在实例上调用的方法SubClass
会SubClass
在SubClass
覆盖这些方法时执行方法。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句