gpt4 book ai didi

java - 如何将派生类传递给接受父类型的函数

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:54:26 24 4
gpt4 key购买 nike

我有一个包含几个变量的 Sport 基类。我还有一些从 Sport 派生的不同类,例如 Volleyball、Soccer 等,它们具有额外的方法和变量。它们看起来有点像这样。

public class Sport {
public String commonVar;
public Sport(String c) {
this.commonVar = c;
}
}

然后 Volley :

public class Volleyball extends Sport {
public String onlyVolleyball;
public Volleyball(String c, String thisVar) {
super(c);
this.onlyVolleyball = thisVar;
}
}

现在我想将 Sport 的派生类传递到其他地方的函数中,但要生成参数

public otherFunction(int one, int two, Sport sport) { }

仅将 sport 视为 Sport 对象(它将接受派生类,但我无法访问 Sport 不常见的任何变量和方法)。我的问题是如何创建一个函数,使我能够在不丢失任何数据的情况下发送所有类型的 Sport 衍生产品?

最佳答案

你不能,但你可以检查对象是否实际上是扩展类的成员,然后转换它并使用它,如下所示:

public otherFunction(int one, int two, Sport sport)
{
if(sport instanceof Volleyball)
{
Volleyball volley = (Volleyball) sport;
//Do Volleyball things
}
else
{
//Only do sport things.
}
}

关于java - 如何将派生类传递给接受父类型的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13981190/

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