当前位置: 首页 > 知识库问答 >
问题:

如何为两个不同的java类重用通用代码

呼延才
2023-03-14

我有玩家类和敌人类,它们都已经扩展了一个游戏类(libgdx)。现在我可以看到玩家和敌人类共享很多公共代码,我可以做一个抽象并将所有必要的代码放在那里,但是玩家类已经从游戏扩展到了敌人类。

玩家和敌人的职业都有其他职业也会调用的方法。

球员级别

public class Player extends Game{

    @Override //from Game_Class
    public void create () {

batch = new SpriteBatch();
    Model = new Texture("Player.png");

    }

    public World getWorld() {
         //common code
    }

    public Body getBody () {
        //common code
    }

//A lot of common methods ...


    public void updateScore() {
        //not common code 
    }    
}

敌方阶级

public class Enemy extends Game{

@Override  //from Game_Class
    public void create () {
     batch = new SpriteBatch();
     Model = new Texture("Enemy.png");
    }

    public World getWorld () {
        //common code
    }

    public Body getBody () {
        //common code
    }

//a lot of common methods

   
}

有没有办法让我把这些方法存储在一个类中,然后在这个类中再次重用它们?

共有1个答案

卓星波
2023-03-14

在这种情况下,您可以创建一个接口,只要在相应的类中需要,就可以实现相同的接口

public interface CommonMethods {
    public World getWorld();
    public Body getBody ();
}



 public class Enemy extends Game implements CommonMethods{

   @Override  //from Game_Class
    public void create () {
     batch = new SpriteBatch();
     Model = new Texture("Enemy.png");
    }

    @Override
    public World getWorld() {
        return null;
    }

    @Override
    public Body getBody() {
        return null;
    }

   }

你可以试试上面这样的

 类似资料:
  • 我已经创建了客户json文件,如下所示: [{"firstName":"test","lastName":"temp","age": 35,"emailAddress":"test@Gmail.com","Address":{"Street Address":"test test","city":"city","postCode":"12343546","state":"state","Count

  • 反序列化XML文件时遇到问题。 无法将类型AlternativeB转换为类型AlternativeA 你们中有没有人对什么可能导致错误有一个想法或一个int?提前谢谢你。

  • 我有一个Firebase数据库,在一个特定的节点级别上有日期,每个日期都有键值对,其值为一定的数字。现在我需要找到最近两天常见的数字。

  • 问题内容: 当我发现以下代码在没有警告和打印的情况下进行编译时,我感到非常惊讶: 我预期会有编译错误。 编译该代码是否有原因? 确保参数具有相同类型的正确方法是什么? 编辑: 关于有限类型参数呢?我能想到的最好的是: 不幸的是,java不允许循环约束。不编译。这是死胡同吗? 问题答案: 究其原因,这是编译因为Java会推断出参数的最具体的超传入,在这种情况下,后是盒装,以和为传递。 没有泛型: 即

  • 例如,拥有如下所示的类。类中的第一个不是null,但中的第二个是null。我得到我尝试创建bean它工作,然后在中调用时得到相同的异常。如何在使用注释的任何地方都使用。 我的主要班级: 类A中使用的验证器类: AmountValidator添加到类Validator中的规则。