gpt4 book ai didi

java - 我对子类有一些问题,如何使用 super.method()

转载 作者:行者123 更新时间:2023-12-02 08:26:52 24 4
gpt4 key购买 nike

我的 child 类(class)是

public class User extends Alien
{

public User(XYCoordination currentLocation, int energyCanister, int lifePoints, String name)

{

super(currentLocation, energyCanister,lifePoints, name);

}

public int collectCanister(NormalPlanet canister)
{
super.collectCanister();
return energyCanister;
}

}

我的父类是:

public class Alien
{

protected XYCoordination currentLocation;

protected Planet currentPlanet;

protected int energyCanister;

protected int lifePoints;

protected int n;

private String name;

public Alien(XYCoordination currentLocation, int energyCanister)
{
this.currentLocation = currentLocation;
this.energyCanister = energyCanister;
this.lifePoints = lifePoints;
this.name = name;
}

...

public int collectCanister(NormalPlanet canister)
{
energyCanister = energyCanister + (int)(n*canister.getRemainingCanister());
return energyCanister;
}
...

}

当我编译它时,子类带有

public int collectCanister(NormalPlanet canister)
{
super.collectCanister();
return energyCanister;
}

不工作?我能做什么?

最佳答案

首先,您的 super.collectCanister(...) 需要一个参数,其次 Alien 的构造函数应该再接受两个参数 - 否则两个 lifePointsname 不会被设置!

这是对 super.collectCanister 方法的"new"调用:

public int collectCanister(NormalPlanet canister)
{
super.collectCanister(canister);
return energyCanister;
}

这就是外星人的构造函数应该是这样的:

public Alien(XYCoordination currentLocation, 
int energyCanister,
int lifePoints,
String name) {
....
}

关于java - 我对子类有一些问题,如何使用 super.method(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4361232/

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