日期:2014-05-20  浏览次数:20717 次

[新手提问]抽象类覆盖方法的程序!错了,我调试了一个下午都看不出来,好心人帮我看看,谢谢
解释器提示说55行和57行(main函数的两个new字段处)说两个子类的构造函数出了问题,可是,为什么啊??
到底哪里有问题,我真的看不出来.

abstract   class   Conversion
{
float   temp;
Conversion(float   temp0)
{
temp=temp0;
}

abstract   void   Convert();
}


//Fahrenheit

class   Fahren   extends   Conversion
{
                  Fahren(float   temp2)
{
super(temp2);
}

void   Convert()
{
System.out.println( "摄氏温度到华氏温度的转换\n************************************************\n ");
System.out.println( "摄氏温度是: "+temp);
temp=temp*9/5+32;
System.out.println( "华氏温度是: "+temp);
}
}

//Celsius

class   Celsius   extends   Conversion
{
Celsius(float   temp1)
{
super(temp1);
}

void   Convert()
{
System.out.println( "华氏温度到摄氏温度的转换\n************************************************\n ");
System.out.println( "华氏温度是: "+temp);
temp=(temp-32)*5/9;
System.out.println( "摄氏温度是: "+temp);
}
}

//Test

public   class   ConversionTest
{
public   static   void   main(String[]   args)
{
Fahren   obj1=new   Fahren(100.0);
obj1.Convert();
Celsius   obj2=new   Celsius(98.6);
obj2.Convert();
}
}

------解决方案--------------------
......
Fahren obj1=new Fahren(100.0f);
......
Celsius obj2=new Celsius(98.6f);
......
------解决方案--------------------
谢谢Veeve的回答,是系统自动的吗?凡是都把像上面那样没加f的默认为double吗?
-------

------解决方案--------------------
关于浮点型 JAVA默认是double型的
例如: float f = 100.0; 是不对的 应该是 float f = 100.0f;