最近在刚刚学Java,刚刚学完继承和多态,现在在做一个作业遇到了困难。
我简单的说一下,父类Vegetable,子类Tomato继承父类,子类有构造方法Tomato(String name,boolean isProtected,Date d)
这是父类Vegetable的定义:
package Pixel;
import java.util.Date;
public class Vegetable {
String name;
public int SerialNumber;//每个植物的序列号
public int productivity;
static int id=0;
Date WhentoGrow;
public Vegetable(String name)
{
this.name=name;
id++;
}
}
子类:
package Pixel;
import java.text.SimpleDateFormat;
import java.text.DecimalFormat;
import java.util.Date;
public class Tomato extends Vegetable {
boolean isProtected=true;
public Tomato(String name,boolean Protected,Date d)
{
super(name);
this.WhentoGrow=d;
this.SerialNumber=super.id;
isProtected=Protected;
if(isProtected)productivity=10;
else productivity=5;
}
private long GrowCycle=6*3600*1000 ;//一个番茄长6小时长出
SimpleDateFormat When = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
final long millis=WhentoGrow.getTime();
final long harvestmillis=millis+GrowCycle;
}
在另一个class中做测试:
package Pixel;
import java.util.Date;
public class test {
@SuppressWarnings("deprecation")
public static void main(String []args)
{
Date t1=new Date(120,4,3,19,30,00);
Date t2=new Date(120,4,3,19,30,00);
//System.out.println(t1.getTime());
Tomato fanqie=new Tomato("fanqie",true,t1);
Tomato fanqie2=new Tomato("fanqie",false,t2);
}
}
通过t1t2做参数d来构造番茄1,番茄二,编辑器此时没有报错,但是当我运行的时候他就报错了,错误信息是java.lang.NullPointerException,并提示问题语句在于Tomato 文件里面的this.WhentoGrow=d这句话。
上网查过了,基本上就是说某个类没有具体实例化,但是我这里的t1,t2都应new过了啊
真的很苦恼,求大神指教啊!