[英]Using an interface method for an object of one data type in an array of a different data type? Java
所以我的問題是我有一個名為GeometricFigure2
的類,其中包含width
和height
等字段。 我有一個名為SidedObject
的接口,該接口包含一種方法來顯示圖形有多少側
public interface SidedObject
{
public void displaySides();
}
我有兩個名為Square2
和Triangle2
子類,它們擴展了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()
方法?
您有三種選擇:
GeometricFigure2
實現您的SidedObject
接口。 SidedObject[]
而不是GeometricFigure2[]
。 SidedObject
: ((SidedObject) geoRef[i]).displaySides();
為了使SideObject
的displaySides()
方法能夠與GeometricFigure2
實例一起使用,您需要修改GeometricFigure2
以實現SidedObject
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.