关于java:Superclass Subclass Instantiation

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引用,因为SubClasssuperClass,但是如果我想实例化superClass,我为什么要使用SubClass引用,因为我通过用superClass实例化得到相同的字段/方法?

我看过这个问题,但我还是很困惑。使用超类初始化子类对象Java

编辑:我不是在说接口。我知道我们可以使用接口来分配实现它们的类的对象。我说的只是超类。

如有任何帮助,我们将不胜感激。


创建EDOCX1的实例时

1
SuperClass superClass = new SubClass();

您可以将superClass强制转换为SubClass,并访问SubClass的方法。创建superClass的实例时不能这样做。

此外,当SubClass重写这些方法时,对SubClass实例调用superClass的方法将执行SubClass方法。