我在做一個簡單的遊戲。 當我打電話的戰鬥方法,通過時被擊中的字符收到的傷害是其自身的損傷變量 例如 Knight- 健康:100 傷害:20如何在另一個對象上使用一個對象的實例變量java
Soldier- 健康:100 傷害:10
當我把我的方法的騎士攻擊的士兵,士兵攻擊騎士他們的健康情況如下
Knight-> 80健康 Soldier-> 90健康
當它應該是倒過來
示例代碼
public abstract class BasicCharacter
{
private double health;
private double damage;
private double attackProbability;
private String name;
public BasicCharacter(double hp,double attp,double d, String n)
{
health=hp;
attackProbability=attp;
damage=d;
name=n;
}
public void setHealth(double hp)
{
health=hp;
}
public double getHealth()
{
return health;
}
public double getDamage()
{
return damage;
}
public void fight()
{
double prob=Math.random();
if(prob<attackProbability)
{
JOptionPane.showMessageDialog(null, name+" attacked for " + damage+ "\n" + name + " health " + health +" left");
health=health-damage;
}
else {
JOptionPane.showMessageDialog(null, name + " missed");
}
}
}
兩個戰士和騎士都BasicCharacter的子類
public class soldier extends BasicCharacter{}
感謝
這會不會在相同的方法或獨立的方法,所有字符都屬於此類 – thebigone
@thebigone您可以在BasicCharacter抽象類實現這個的一部分。所以無論誰擴展BasicCharacter都會有這個默認實現。您仍然可以選擇在子類中重寫此方法。 – user3437460