Java继承:曲棍球队类中的曲棍球比赛
我试着用一个曲棍球队的例子来练习继承Java继承:曲棍球队类中的曲棍球比赛,java,inheritance,subclass,superclass,Java,Inheritance,Subclass,Superclass,我试着用一个曲棍球队的例子来练习继承 public class HockeyPlayer { private String firstName; private String lastName; private String teamName; public HockeyPlayer(String first, String last) { firstname = first; lastName = last; }
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);
}
}
正如你所看到的,我也包括曲棍球运动员互相打架。有没有办法让两名曲棍球运动员在曲棍球队比赛中互相厮杀?既然这个问题的重点是关于多态性,我将首先尝试给出一些好的建议。(我是说试试看) 当一个类从另一个类扩展时,您是说classA是classB。在这种情况下,我不相信曲棍球队就是曲棍球运动员。多态性可以通过使用抽象类并让团队从中扩展来使用,例如Spokane酋长从Hockey Team中扩展并重写他们的方法。SpokaneCheifs将是他们自己的类,在您的情况下,您将在运行时创建每个团队 如果您希望两个团队在“战斗”期间彼此有联系,您可以让战斗方法接受HockeyTeam对象,例如teamA.fight(teamB)。这样,teamA就可以访问teamB,与他们的公众得分者/二传手“战斗”,我不确定你希望他们如何战斗,通常使用RNG来决定胜利者和任何损失 另外,我喜欢你使用DVC的方式,但除非你知道会有这样的情况,你会使用一个空名字的播放器,或者在运行时用setter创建它;最好删除它并使用您的EVC。如果你有一个显式的值构造函数,Java不会创建一个默认值构造函数,除非你为它指定。我试图让曲棍球运动员互相打架,当我去打曲棍球,一场愚蠢的比赛爆发时,我讨厌这样。
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();
}
}