请详细解释一下该程序,特别是条件语句那里的目的。

我看不太懂这个程序,不太能理解该程序开始四边形那一段程序里的条件语句,
img


public class Quadrangle {
    //实例化保存四边形对象的数组对象
    private Quadrangle{] qtest = new Quadrangle[6];
    private int nextlindex = 0;//数组下标从0开始

    public void draw(Quadrangle q){
          if (nextindex < qtest.length) {//数组下标小于数组qtest长度,避免数组越界
          qtest[nextindex] = q; // 将参数传进来q 四边形存到qtest数组的第nextindex个元素
          System.out.printIn(nextIndex);  //
          nextIndex++;//等价于nextindex = nextindex+1; (nextindex加一,以便下次存入数组的下一个位置,避免覆盖前面存入的数据)
    }

public static void main(String] args) {
        //实例化两个四边形对象,用于调用 draw()方法
        Quadrangle q = new Quadrangle();
        q.draw(new Square());
        q.draw(new Parallelogramgle());
    }
}

定义一个正方形类,继承四边形类
class Square extends Quadrangle {
     public Square() {
        System.outprintln("正方形");
    }
}

//定义一个平行四边形类,继承四边形类
class Parallelogramgle extends Quadrangle {
    publicParallelogramgle(){
        System.out println("平行四边形");
    }
}