当从这些类创建对象时,我对多态性和扩展类等在 Java 中的工作原理有点困惑。
我最近遇到了一个问题,这里有人帮我解决了(请参阅无法访问对象子类的变量?(Java / Android))作为背景。
我试图创建一个像这样的对象:
Quad hero = new Hero();
其中 Hero 是 Quad() 的子类;
我的 Hero 类中有我无法访问的变量。
解决方案是将我的对象创建更改为:
Hero hero = new Hero();
这样做,通过我的 hero 对象,我能够访问 Quad 和 Hero 类中的所有方法和变量。
我现在的问题是 - 为什么会这样?
考虑到这一点,什么时候使用我原来的方法有用:
Quad hero = new Hero();
这对我来说很有意义,因为 Hero 也是一个四边形。我在 Java 代码示例中多次看到这种类型的声明,并认为我理解,但最近的事件证明并非如此。
如果有人可以为我解释这一点,将不胜感激 - 谢谢