java继承问题求解答,急急急

为什么下面的代码,当子类与父类有相同成员变量时,创建子类对象子类引用出现空指针异常,求大神解答
class Cell{
int row;
int col;
Cell(int row,int col){
this.row=row;
this.col=col;
}
String getCellInfo(){
return row+","+col;
}
}
class Tetromino{
Cell[]cells;
Tetromino(){
cells=new Cell[4];
}
}
class T extends Tetromino{
Cell[]cells;
T(int row,int col){
cells[0]=new Cell(row,col);
cells[1]=new Cell(row,col+1);
cells[2]=new Cell(row,row+2);
cells[3]=new Cell(row+1,col+1);
}
}
class TTest{
public static void main(String[] args){
T t=new T();
printWall(t);
}
public static void printWall(T t){
for(int i=0;i<20;i++){
for(int j=0;j<10;j++){
boolean flag=true;
for(int k=0;k<t.cells.length;k++){
if(i==t.cells[k].row&&j==t.cells[k].col){
flag=false;
}
}
if(flag==true){
System.out.print("- ");
}else{
System.out.print("* ");
}
}
System.out.println();
}
}
}

类T的的Cell数组并没有创建对象啊,当然会空指针

子类的cells成员初始化为null,你在子类构造时创建使用了cells成员,此时cells成员的值为null,所以在创建子类是出现空指针异常。
正确做法是:对子类cells成员进行初始化或者删除子类cells成员直接使用继承自父类的cells成员。
另外建议父类和子类不要使用同名成员,容易发生混淆