簡體   English   中英

對不同數據類型的數組中一種數據類型的對象使用接口方法嗎? Java的

[英]Using an interface method for an object of one data type in an array of a different data type? Java

所以我的問題是我有一個名為GeometricFigure2的類,其中包含widthheight等字段。 我有一個名為SidedObject的接口,該接口包含一種方法來顯示圖形有多少側

public interface SidedObject
{
    public void displaySides();
}

我有兩個名為Square2Triangle2子類,它們擴展了GeometricFigure2並實現SidedObject 這兩個類都包含displaySides()方法,如下所示:

public void displaySides()
{
   System.out.println("The square has 4 sides.");
}

最后,我有一個名為UseGeometricFigure2的類,它同時使用了兩個子類。 我創建了一個類型為GeometricFigure2的數組,該數組用於容納兩個Square2對象和兩個Triangle2對象:

GeometricFigure2[] geoRef = new GeometricFigure2[4];
    geoRef[0] = new Square2();
    geoRef[1] = new Square2();
    geoRef[2] = new Triangle2();
    geoRef[3] = new Triangle2();

然后,我創建一個for循環以遍歷數組,並為數組中的每個對象調用displaySides()方法:

for(int i=0; i<4; i++)
{
    geoRef[i].displaySides();
}

問題是當我嘗試編譯時,它給我一個“找不到符號”錯誤。 它正在GeometricFigure2類(它是數組類型displaySides()中尋找displaySides() 如何在此設置中正確調用displaySides()方法?

您有三種選擇:

  1. GeometricFigure2實現您的SidedObject接口。
  2. 將您的數組聲明為SidedObject[]而不是GeometricFigure2[]
  3. 將數組變量轉換為SidedObject
    ((SidedObject) geoRef[i]).displaySides();

為了使SideObjectdisplaySides()方法能夠與GeometricFigure2實例一起使用,您需要修改GeometricFigure2以實現SidedObject

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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