gpt4 book ai didi

Java继承: Hockey fights in the HockeyTeam class

转载 作者:行者123 更新时间:2023-12-02 08:55:56 25 4
gpt4 key购买 nike

我正在尝试用曲棍球队的例子来练习继承

public class HockeyPlayer {
private String firstName;
private String lastName;
private String teamName;

public HockeyPlayer(String first, String last) {
firstname = first;
lastName = last;
}

public void print() {
System.out.print(firstName + " " + lastName);
}
}
public class HockeyTeam extends HockeyPlayer {
private String teamName;
public HockeyTeam(String first, String last, String s) {
super(first, last);
teamName = s;
}
public String getTeamName() {
return teamName;
}
public void fight() {
super.print();
System.out.print(" is fighting against ");
}
}
public class HockeyGame {
public static void main(String[] args) {

HockeyTeam team1Player1 = new HockeyTeam("Sidney","Crosby","Pittsburgh Penguins");
HockeyTeam team2Player1 = new HockeyTeam("Jack","Campbell","Toronto Maple Leafs");

team1Player2.fight();
}
}

如您所见,我还包括了互相争斗的曲棍球运动员。有没有办法让两名曲棍球运动员在 HockeyTeam 类(class)中互相争斗?

最佳答案

由于这个问题的要点是关于多态性的,所以我会首先尝试给出好的建议。 (我的意思是尝试)。

当一个类从另一个类扩展时,您可以说 classA 是 classB。在这种情况下,我不相信曲棍球队是曲棍球运动员。多态性可以通过使用抽象类并让团队从它们扩展来使用,例如斯波坎酋长队从曲棍球队扩展并覆盖他们的方法。 SpokaneCheifs 将是他们自己的类,在您的情况下,您将在运行时创建每个团队。

如果您希望两支球队在“打架”期间相互联系,您可以让 Fight 方法接受 HockeyTeam 对象,例如 teamA.fight(teamB)。这样,teamA 就可以访问 teamB 与他们的公共(public) getter/setter 进行“战斗”,我不确定您希望他们如何战斗,通常使用 RNG 来决定获胜者和任何损害。

另外,我喜欢您使用 DVC 的方式,但除非您知道在某些情况下您将使用名称为空的播放器,或者在运行时使用 setter 创建它;最好删除它并使用您的 EVC。如果您有显式值构造函数,Java 将不会创建默认值构造函数,除非您指定它。

关于Java继承: Hockey fights in the HockeyTeam class,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60481125/

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