![](/img/trans.png)
[英]Method Calls from Child Class objects in arraylist of parent class Java
[英]How do I create some objects to store in an arrayList, which is a attribute of sub class, from a parent class in Java?
所以我有3個班,Lair,LairLocation&Minion。 我創建了一個ArrayList,它應該存儲Minion對象,這是LairLocation的一個屬性。 我應該從父類Lair創建一些存儲在ArrayList中的對象。 LairLocation和Minion以及Lair的子類。
每當我嘗試創建存儲在我父母的ArrayList中的對象時,我就會收到一條錯誤,說'minion無法解決'並告訴我創建一個局部變量等。請幫忙
LairLocation
'''
public class LairLocations extends Lair
{
public static ArrayList<Minion> minions = new ArrayList<Minion>();
}
'''
Lair
'''
public class Lair
{
public void createMinions()
{
minions.add("12", "Mine", "Me");//This is giving me the error
}
}
'''
Minion
'''
public class Minion extends Lair
{
private String id;
private String fName;
private String lName;
public Minion(String Id, String fName, String lName)
{
this.id = id;
this.fName = fName;
this.lName = lName;
}
}
'''
您正在嘗試從其父類訪問子類的字段。 這不起作用。
您只能訪問父類的字段(如果它們是公共的或受保護的)。
所以,你要么必須將你的minions
字段移動到父類Lair
(並且順便使它成為非靜態的),或者通過LairLocation類訪問該對象: LairLocation.minions()
(如果該字段應該是靜態的) )。
此外,這行代碼不正確: minions.add("12", "Mine", "Me");
add()
方法只接受一個元素。
應該是: minions.add(new Minion("12", "Mine", "Me"));
你必須調用new Minion()
來獲得一個新的奴才。
minions.add( new Minion( "12", "Mine", "Me") );
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.