gpt4 book ai didi

java - Java 中的动态调度

转载 作者:行者123 更新时间:2023-12-01 19:10:29 25 4
gpt4 key购买 nike

假设我有一个类A,它定义了一个方法bar()。方法 bar() 调用另一个方法 foo()。然后,我在 B 中扩展 A 并覆盖 foo() 并且不覆盖 bar() (所以它得到遗传)。在这两种情况下,哪个 foo() 被调用?

A a = new B();
a.bar(); // A or B's foo called?

B b = new B();
b.bar(); // A or B's foo called?

最佳答案

两者都使用 B 的 foo()。A a 只是访问 B 的方法,因为 B 是实例。

将 A a 视为实例的接口(interface),在本例中:new B()

这是一个示例(groovy 中): http://groovyconsole.appspot.com/script/616002

关于java - Java 中的动态调度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8585320/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com