[英]Calling a parent method from a child class, encapsulation issues in Java
由於某種原因,我不知道如何進行編譯。 它無法在此行中找到setValue函數:'skill.get(“ Level”)。setValue(newLevel);'
import java.util.HashMap;
public class Stat extends GameObject
{
int value;
public Stat()
{
name = "Accuracy";
value = 1;
}
public int getValue()
{
return value;
}
public void setValue(int newValue)
{
value = newValue;
}
}
import java.util.HashMap;
public class Skill extends Stat
{
protected HashMap<String, GameObject> skill;
public Skill()
{
name = "swords";
description = "Learn how to master the art of swordmanship";
skill.put("Level",new Stat("Level",1));
skill.get("Level").setValue(newLevel);
}
}
skill.get(“ Level”)是一個GameObject,而不是Stat。
可能setValue僅在Stat中定義,而不在GameObject中定義?
如果確定(例如,如果您用instanceof檢查或僅將Stat對象放入Skill-HashMap中),則可以將get的結果強制轉換為Stat對象,如下所示:
((Stat)skill.get("Level")).setValue(newLevel);
編輯:可能只是一個復制粘貼問題:您需要一個構造函數Stat(String,int)(感謝Subhrajyoti Majumder指出了這一點)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.