【发布时间】:2012-08-13 10:01:13
【问题描述】:
我需要有关接口的建议。我有一个名为 Unit 的类,它可以攻击其他单位。攻击可以是空中或地面。我需要一种方法来实现名为attack() 的攻击。一些单位只能攻击地面单位,一些空中单位或两者兼而有之。
这是我目前为止的想法:
public interface Attack() {
public void attack(SCObject object);
}
public interface GroundAttack() extends Attack {
public void groundAttack(SCObject object);
}
public interface AirAttack() extends Attack {
public void airAttack(SCObject object);
}
我可以有不同的单位:
Unit extends SCObject implements GroundAttack {
}
Unit extends SCObject implements AirAttack {
}
Unit extends SCObject implements AirAttack, GroundAttack {
}
问题是这个实现将显示两个地面和空中选项,而我只希望 attack() 方法可见。
您能提出解决方案吗?或者您觉得这样可以吗?
【问题讨论】:
-
您的限制(空中与地面)是静态的(即在编译时可解决)还是动态的(在运行时可解决)?
标签: java inheritance interface