【发布时间】:2023-04-11 00:06:01
【问题描述】:
为了自学 Java,我最近翻阅了几本书,幸运的是,主要是由于运气,遇到的困难很少。刚刚改变了。
我在继承和整个超类子类设置下阅读了以下部分
-- 当一个新的超类对象被创建时,它像所有对象一样被分配一个引用(本例中为superReference)
-- 如果创建了一个新的子类对象(定义子类扩展了超类),然后将 superReference 引用设置为引用该对象而不是原始对象,我的理解是,既然引用了对于超类,只有超类定义的成员才能从子类访问。
首先 - 这是正确的吗?
第二:如果我重写了一个方法,因此在超类中具有一个,在子类中具有一个,然后我创建一个超类对象,然后按照称为像 Dynamic Method Dispatch 之类的,被调用的重写方法应该默认访问子类方法吧?
好吧,我的问题是:
如果对超类对象的引用为子类对象重新工具,并且将拒绝直接 object.member 访问子类定义的成员,仅支持超类定义的成员,如果超类引用被重新工具为子类对象,如果访问受到超类起源引用的限制,则覆盖的方法适用于子类对象-
【问题讨论】:
-
你在哪里读到的?这很令人困惑。你能用
>引用什么不是你的文字吗? -
您显然很困惑,但由于源材料可能令人困惑,因此无法分辨出它的哪一部分。
标签: java oop overriding