gpt4 book ai didi

java - 类声明 - 不清楚的对象类型

转载 作者:行者123 更新时间:2023-12-02 01:42:06 25 4
gpt4 key购买 nike

如果有声明

人类汤姆 = new Athlete();

AthleteHuman的子类,其对象类型是tom

对于tom.method1()并且两个类中都有一个method1(),即。 Athlete.method1() 覆盖 Human.method1(),

我们使用哪种method1()?来自Athlete 类别或Human 类别的一个?

最佳答案

tom 的实际类型是 Athlete。但是,由于 tom 的声明指定了 Human,因此您只能访问 Human(及其父类(super class))上定义的方法。

如果 Human 上的方法在 Athlete 中被覆盖,例如。 method1(),则调用的是 Athlete 上的实现。

如果您将 tom 声明为 Athlete 类型(根据您评论中的问题),则 tom 的实际类型> 没有改变。不过,您现在可以访问仅在 Athlete 上定义的方法。

关于java - 类声明 - 不清楚的对象类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54320134/

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