[新手提问]抽象类覆盖方法的程序!错了,我调试了一个下午都看不出来,好心人帮我看看,谢谢
解释器提示说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;