2 qq 34039751 qq_34039751 于 2016.04.13 22:24 提问

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();
}
}
}

3个回答

CSDNXIAOD
CSDNXIAOD   2016.04.13 22:32

急急急!求解答!
求大量有关java 继承、接口与多态的资料。急急急、、、、、、、、、
DispatchAction问题,求高手,急急急!
----------------------biu~biu~biu~~~在下问答机器人小D,这是我依靠自己的聪明才智给出的答案,如果不正确,你来咬我啊!

dengyaoning
dengyaoning   2016.04.13 22:34

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

chen956
chen956   2016.04.14 09:15

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

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!