используйте instanceof и приведите к желаемому подклассу. Возможно, вы захотите сделать эти поля общедоступными или использовать стандартную идиому приватных полей с геттерами и сеттерами.
я есть базовый класс под названиемГеометрия из которого существует подкласссфера:
public class Geometry
{
String shape_name;
String material;
public Geometry()
{
System.out.println("New geometric object created.");
}
}
и подкласс:
public class Sphere extends Geometry
{
Vector3d center;
double radius;
public Sphere(Vector3d coords, double radius, String sphere_name, String material)
{
this.center = coords;
this.radius = radius;
super.shape_name = sphere_name;
super.material = material;
}
}
У меня есть ArrayList, который содержит всеГеометрия объекты, и я хочу перебрать его, чтобы проверить, правильно ли считываются данные из текстового файла. Вот мой метод итератора до сих пор:
public static void check()
{
Iterator<Geometry> e = objects.iterator();
while (e.hasNext())
{
Geometry g = (Geometry) e.next();
if (g instanceof Sphere)
{
System.out.println(g.shape_name);
System.out.println(g.material);
}
}
}
Как получить доступ и распечататьсферы радиус и центр поля? Заранее спасибо :)