gpt4 book ai didi

java - 如何在一组 Java 对象之间共享同一个名称?

转载 作者:行者123 更新时间:2023-12-02 11:15:36 27 4
gpt4 key购买 nike

标题可能有意义,也可能没有意义,但我的问题是如何将对象“覆盖”为不同的类型?

我怀疑这是否可能,但我不太确定如何以其他方式解决这个问题。

我正在用 Java 创建一个小型平台游戏,所有级别都分配给类对象。例如,Level 1 位于 Level1 类中,并通过以下方式实例化:

Level1 platforms = new Level1();

我绘制对象的方式(以及类似地检查碰撞)在此循环中描述:

Level1 platforms = new Level1();
//grabs number of platforms for level 1
int platformNum = platforms.getNumberOfPlatforms();
//creates platforms for level 1
for(int i=0;i<=platformNum;i++){
int x1=platforms.getPlatformCoords(i,1);
int y1=platforms.getPlatformCoords(i,2);
int x2=platforms.getPlatformCoords(i,3);
int y2=platforms.getPlatformCoords(i,4);
x2-=x1;
y2-=y1;
g.fillRect(x1,y1,x2,y2);
}

如何更改声明 Level1 platforms = new Level1();这样platforms可以是某种类型,具体取决于变量 level ,这样当 level == 1 ,平台将为 Level1 ,等等?

最佳答案

只需使用 FactoryMethod:

Level platform = LevelFactory.getLevel(level);

关卡工厂内部:

public Level getLevel(int level){
if(level==1)return new Level1();
if(level==2)return new Level2();
//...
}

为了使其发挥作用,每个级别都必须扩展或实现 Level 类或接口(interface)。

关于java - 如何在一组 Java 对象之间共享同一个名称?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33349825/

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