好的,所以我对“扩展”和“实现”的使用感到困惑。让我给一个场景,假设我正在制作一个简单的塔防游戏。所以我的理解是,如果我创建一个类(TowerBase.java),我可以用变量和方法填充它,例如;int hp, int damage, int attack(){ ... }, 等等....变量为所述塔的唯一值。我的理解是,在 TowerArcher 内部,如果我扩展 TowerBase,我可以访问 TowerBase 的所有变量和方法,因为 TowerBase 现在是父级。所以我尝试了这个:
public class TowerBase {
//Health (Range: 1-100)
int hp;
public int attack(int blah){
//Blah blah how the tower goes about attacking foe
}
然后在 TowerArcher.java
public class TowerArcher extends TowerBase{
//Set TowerArcher's unique values
hp = 10;
}
现在在游戏的某个地方...
TowerArcher archer;
archer.attack(blah);
Eclipse 在 TowerArcher.java 中的“hp = 10;”处抛出此语法错误:此令牌后应有 VarableDeclaratorId。我认为它是在说它不知道 hp 是什么。这让我感到困惑,因为我认为它会知道 hp 是什么,因为它在父类中。我找到了解决方法,但它们似乎并不那么有效,即使它们有效,它们仍然让我对扩展和实现的真正用途感到困惑。基本上我想在这里找到的是;
1:extends 有什么作用
2:如何在程序中直观地使用 extends
3:implements 有什么作用
4:如何在程序中直观地使用 implements
5:在这种情况下我应该使用什么我有许多不同的对象(塔)做几乎相同的事情,也许是 TowerArcher TowerBunker TowerSnipernest TowerBarricade 等。
我知道我要求很多,但我找不到一个好的帖子所以这也可以帮助其他人:)
PS如果我缺少任何需要的信息,请告诉我。在这一点上我很无能为力。