运行一段JAVA代码出现的小问题..and关于多态

来源:百度知道 编辑:UC知道 时间:2024/06/14 17:47:35
public class CopyOfQuadrangle {

private CopyOfQuadrangle[] qtest=new CopyOfQuadrangle[6];
private int nextIndex = 0;
public void draw(CopyOfQuadrangle q){
if(nextIndex<qtest.length){
qtest[nextIndex]=q;
System.out.println(nextIndex);
nextIndex++;
}
}
public static void main(String[] args) {
CopyOfQuadrangle q=new CopyOfQuadrangle();
q.draw(new CopyOfSquare());
q.draw(new CopyOfParallelogramgle());

}

}
class CopyOfSquare extends CopyOfQuadrangle{
public CopyOfSquare(){
System.out.println("正方形");
}
}
class CopyOfParallelogramgle extends CopyOfQuadrangle{
public CopyOfParallelogramgle(){
System.out.println("平行四边形");
}
}
想问问~我运行它时为什么会出现图片上这个提示呢~?

还有..弱弱地问下...这段代码的原理是什么..它创建CopyOfQuadrangle的对象q,让它去调用CopyOfSquare(),CopyOfParallelogramgle()的方法..那么那个0,1又是什么时候进来的...

第一次调用q.draw(new CopyOfSquare());传递一个 CopyOfQuadrangle 的子类对象CopyOfSquare进去,判断if语句,成立,则
qtest[0]=CopyOfSquare;
neitIndex++;

第二次调用q.draw(new CopyOfParallelogramgle());传递一个 CopyOfQuadrangle 的子类对象
CopyOfParallelogramgle进去,判断if语句,成立,则qtest[1]=CopyOfParallelogramgle;