Java:进一步定义类和/或类的用途?
我正在使用libgdxjava框架和eclipseide设计一个游戏 我定义了一个角色类。我想使用这个类来定义所有可能的角色,因为它包含可以用于敌人、玩家和老板的属性 然而,我不知道我是否应该扩展这个类,或者如何正确地扩展。如果有人能帮我找到正确的方向,我将不胜感激 以下是我在记事本中输入的内容(Eclipse尚未完全接受):Java:进一步定义类和/或类的用途?,java,eclipse,class,libgdx,extends,Java,Eclipse,Class,Libgdx,Extends,我正在使用libgdxjava框架和eclipseide设计一个游戏 我定义了一个角色类。我想使用这个类来定义所有可能的角色,因为它包含可以用于敌人、玩家和老板的属性 然而,我不知道我是否应该扩展这个类,或者如何正确地扩展。如果有人能帮我找到正确的方向,我将不胜感激 以下是我在记事本中输入的内容(Eclipse尚未完全接受): 我认为,在这种情况下,您应该使用工厂设计模式 首先,用if(alliesDead==false)修复语法错误分号完成了if的运算,因此else不匹配。另外,如果(!all
我认为,在这种情况下,您应该使用
工厂设计模式
首先,用if(alliesDead==false)修复语法错误
分号完成了if
的运算,因此else
不匹配。另外,如果(!alliesDead){
比较短。但是这样我就不能写我的方法了,因为我的角色变成了一个接口,我不能定义方法。这使得我不得不重写我的方法,老实说,我看不到接口在任何情况下的好处。它完全违背了代码重用的目的。Java 8引入了函数接口,所以可以在接口中定义方法。我有Java 8,但Eclipse说接口方法是自动抽象的,抽象方法不能有方法体。这很奇怪。您是否尝试导入Java.util.function
另外,请查看模板方法模式:
package com.mygdx.game;
public class Character
{
//variable declaration
private int health;
private int dmg;
private String image;
//constructor methods
public Character(int setHealth, int setDamage, String setImg)
{
health = setHealth;
dmg = setDamage;
image = setImg;
}
//movement methods
public void walkLeft()
{
}
public void walkRight()
{
}
public void jump()
{
}
public void hit(int damage)
{
health -= damage;
if (health <= 0)
{
//getWorld().removeObject(this);
//this is code that was written while I was using Greenfoot but Greenfoot works differently than a regular IDE so I need to adapt this code
}
}
public int attack()
{
return dmg;
}
}
public class SilverGeneral extends Character
{
private boolean alliesDead;
public void attackArrow()
{
dmg = 1
Arrow a = new Arrow();
getWorld().addObject(a, getX(), getY());
}
public void checkAllies()
{
if (alliesDead == false);
{
}
else
{
}
}
}