考虑以下代码片段:
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-aSuperClass
,但如果我想实例化SuperClass
,为什么要使用SubClass
引用,因为我通过用SuperClass
实例化它来获得相同的字段/方法?
我看过这个问题,但还是很困惑。使用超类初始化子类对象java
编辑:我不是在这里谈论接口。我知道接口,我们可以使用它们来分配实现它们的类的对象。我说的只是超类。
如有任何帮助,我们将不胜感激。
创建SubClass
实例时
SuperClass superClass = new SubClass();
您可以将superClass
强制转换为SubClass
并访问SubClass
的方法。创建SuperClass
实例时无法执行此操作。
此外,在SubClass
的实例上调用SuperClass
的方法将在SubClass
重写这些方法时执行SubClass
方法。