используйте 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);
   }
  }
 }

Как получить доступ и распечататьсферы радиус и центр поля? Заранее спасибо :)

Ответы на вопрос(0)

Ваш ответ на вопрос