Это сводится к фундаментальной концепции Наследование в объектно-ориентированном программировании.
Вы объявляете массив Shape
, и это означает, что вы можете использовать только методы, определенные вShape
класс при доступе к элементу, даже если этот элемент является унаследованным типом, как, в вашем случае, Circle
Так что проблема в том, что класс Shape
не определяет метод для setRadius(int radius)
и, следовательно, метод не может использоваться, когда переменная Shape
Возможно, вы хотели что-то подобное?
Circle[] circleArray = new Circle[10];
for (int i = 0; i < circleArray.length; i += 2)
{
circleArray[i] = new Circle();
circleArray[i].setRadius(2);
}