簡體   English   中英

如何創建一些對象來存儲在一個arrayList中,這是一個子類的屬性,來自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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM