Superclass Subclass Instantiation
请考虑以下代码段:
1 2
| SuperClass superClass = new SubClass(); // Instantiating SuperClass reference
SubClass subClass = new SubClass(); // Instantiating SubClass reference |
如果我列出superClass对象的字段/方法,我只能从超类中看到方法。那么,两者之间的区别是什么呢?
1
| SuperClass superClass = new SubClass(); |
和
1
| SuperClass superClass = new SuperClass(); |
我知道这可能是多态性的情况,我可以使用SubClass引用,因为SubClass是superClass,但是如果我想实例化superClass,我为什么要使用SubClass引用,因为我通过用superClass实例化得到相同的字段/方法?
我看过这个问题,但我还是很困惑。使用超类初始化子类对象Java
编辑:我不是在说接口。我知道我们可以使用接口来分配实现它们的类的对象。我说的只是超类。
如有任何帮助,我们将不胜感激。
- Edited the question@elliott-frisch.谢谢
- 你仍在上课时定义的界面上编程You're still programming to the interface defined by the superclass.
创建EDOCX1的实例时
1
| SuperClass superClass = new SubClass(); |
您可以将superClass强制转换为SubClass,并访问SubClass的方法。创建superClass的实例时不能这样做。
此外,当SubClass重写这些方法时,对SubClass实例调用superClass的方法将执行SubClass方法。
- 谢谢你的快速回答。感激。
- 请你解释一下,在什么情况下,我需要对SubClass使用casitng superClassobject,以便我可以访问SubClass'方法,因为如果我知道我需要SubClassobject,那么我将使用SubClassobject而不是superClassobject?