为了自学 Java,我最近翻阅了几本书,幸运的是,主要是由于运气,遇到的困难很少。这已经改变了。
我在继承和整个超类子类设置下阅读了以下部分
-- 当一个新的超类对象被创建时,它像所有对象一样被分配一个引用(本例中为 superReference)
-- 如果创建了一个新的子类对象(定义子类扩展了超类),然后将 superReference 引用设置为引用该对象而不是原始对象,我的理解是,因为引用是针对超类的,只有超类定义的成员可以从子类访问。
首先 - 这是正确的吗?
第二:如果我重写了一个方法,因此在父类中有一个,在子类中有一个,然后我创建一个超类对象,然后将其引用分配给一个子类对象,就像我上面所做的那样,通过类似于动态的原理Method Dispatch,一个被调用的重写方法应该默认访问子类方法吗?
好吧,我的问题是:
如果对超类对象的引用为子类对象重新工具,并且将拒绝直接 object.member 访问子类定义的成员,仅支持超类定义的成员,如果为子类对象重新工具超类引用,怎么能,如果访问受到超类起源引用的限制,则覆盖的方法适用于子类对象