gpt4 book ai didi

java - 对不同数据类型数组中一种数据类型的对象使用接口(interface)方法? java

转载 作者:太空宇宙 更新时间:2023-11-04 06:25:01 29 4
gpt4 key购买 nike

所以我的问题是我有一个名为 GeometricFigure2 的类,它包含 widthheight 等字段。我有一个名为 SidedObject 的接口(interface),它包含一个显示图形有多少条边的方法

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() 方法?

最佳答案

您有三个选择:

  1. GeometricFigure2 实现您的 SidedObject 接口(interface)。
  2. 将数组声明为 SidedObject[] 类型,而不是 GeometricFigure2[]
  3. 将数组变量转换为 SidedObject:
    ((SidedObject) geoRef[i]).displaySides();

关于java - 对不同数据类型数组中一种数据类型的对象使用接口(interface)方法? java ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26899785/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com