gpt4 book ai didi

java - 在处理继承时识别 java 对象的类型

转载 作者:行者123 更新时间:2023-12-02 03:40:36 26 4
gpt4 key购买 nike

我被分了 4 门课,如下。

public abstract class TennisPlayer{...}
public class GoodPlayer extends TennisPlayer{...}
public class WeakPlayer extends TennisPlayer{...}
public class Beginner extends WeakPlayer{...}

我还获得了 3 个声明,如下。

TennisPlayer g = new GoodPlayer("Sam");
TennisPlayer w = new WeakPlayer("Harry");
TennisPlayer b = new Beginner("Dick");

所以我的问题是上面创建的每个对象的类型是什么,为什么?例如第一个语句,Sam 的类型是 GoodPlayer 还是 TennisPlayer?

最佳答案

由于 GoodPlayer、WeakPlayer 和 Beginner 类扩展了 Tennisplayer 类,因此它们都继承了 TennisPlayer 类的属性。因此,当您实例化一个变量时,例如...

Tennisplayer g = new GoodPlayer("Sam") ;

“Sam”属于 GoodPlayer 类型,但继承了 TennisPlayer 类的属性。

由于网球运动员的类​​型很多,我们可以创建子类来扩展 TennisPlayer 类。然而,所有网球运动员都会有一些相同的属性,例如高度。因此,我们将在 TennisPlayer 类中定义一个高度变量,并且每个子类都能够实现该变量。我们可以将一些属性设置为子类独有的。例如,GoodPlayer 可能具有对 WeakPlayer 或初学者没有意义的属性。

这就是简单的多态性。如果您 Google“Java 多态性”,您可以找到大量信息。

关于java - 在处理继承时识别 java 对象的类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36877853/

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