abstract class Conversion
{
double numhua;                   //华氏温度
double numshe;                   //摄氏温度
final int con=32;             //final变量存储常量值
Conversion()
{      }
Conversion(double nohua)
{
numhua=nohua;
}
Conversion(double noshe)
{
numshe=noshe;
}
abstract void convert();          //抽象方法
}
class Celsius extends Conversion               //华氏温度转换到摄氏温度
{
double result1;
Celsius()
{      }
Celsius(double nohua)
{
super(nohua);                     //调用父类构造方法
}
void convert()                      //重写父类的方法
{
result1=numhua*9/5+32;
System.out.println("从华氏温度到摄氏温度的转换");
        System.out.println("*********************************************");
System.out.println("华氏温度为:"+numhua);
System.out.println("摄氏温度为:"+result1);
System.out.println("  ");
}
}
class Fahrenheit extends Conversion                     //摄氏温度转换到华氏温度
{
double result2;
Fahrenheit()
{       }
Fahrenheit(double noshe)
{
super(noshe);                                     //调用父类构造方法
}
void convert()                                      //重写父类的方法
{
result2=(numshe-32)*5/9;
System.out.println("从摄氏温度到华氏温度的转换");
        System.out.println("*********************************************");
System.out.println("摄氏温度为:"+numshe);
System.out.println("华氏温度为:"+result2);
System.out.println("  ");
}
}
public class ConversionTest                      //测试类
{
public static void main(String[] args) 
{
Celsius objC=new Celsius(100.0);
objC.convert();
Fahrenheit objF=new Fahrenheit(98.6);
objF.convert();
}
}
错误信息:ConversionTest.java:16: 已在 Conversion 中定义 Conversion(double)
       Conversion(double noshe)
^
这个问题怎么解决?

解决方案 »

  1.   

    abstract class Conversion
    {
    double numhua;                   //华氏温度
    double numshe;                   //摄氏温度
    final int con=32;             //final变量存储常量值
    Conversion()
    {      }
    Conversion(double nohua)///这里
    {
    numhua=nohua;
    }
    Conversion(double noshe)//重复定义方法
    {
    numshe=noshe;
    }
    abstract void convert();          //抽象方法
      

  2.   

    构造方法要想重载,必须参数列表不同
    你的两个构造方法参数都是double型的,虽然变量不同但也是属于参数类型相同
      

  3.   

    Conversion(double nohua) 

    numhua=nohua; 

    Conversion(double noshe) 

    numshe=noshe; 

    重复了,函数参数类型,个数都一样。
      

  4.   


    abstract class Conversion {
    double numhua;
    double numshe;
    final int con = 32; Conversion() {
    } Conversion(double nohua) {
    numhua = nohua;
    } Conversion(double noshe) {
    numshe = noshe;
    } abstract void convert();
    }这里有连个Conversion(double ***)方法,只是参数名不一样,但是类型是一样的,劝楼主先研究下面向对象的基本知识,多态是怎么样的
      

  5.   

    解决方法是
    记录温度的值用一个
    abstract class Conversion
    {
    double num;                   //温度
    final int con=32;             //final变量存储常量值
    Conversion()
    {      }Conversion(double no)
    {
    num=no;
    }
    abstract void convert();          //抽象方法
    }
    class Celsius extends Conversion               //华氏温度转换到摄氏温度
    {
    double result1;
    Celsius()
    {      }
    Celsius(double nohua)
    {
    super(nohua);                     //调用父类构造方法
    }
    void convert()                      //重写父类的方法
    {
    result1=num*9/5+con;
    System.out.println("从华氏温度到摄氏温度的转换");
            System.out.println("*********************************************");
    System.out.println("华氏温度为:"+num);
    System.out.println("摄氏温度为:"+result1);
    System.out.println("  ");
    }
    }
    class Fahrenheit extends Conversion                     //摄氏温度转换到华氏温度
    {
    double result2;
    Fahrenheit()
    {       }
    Fahrenheit(double noshe)
    {
    super(noshe);                                     //调用父类构造方法
    }
    void convert()                                      //重写父类的方法
    {
    result2=(numshe-con)*5/9;
    System.out.println("从摄氏温度到华氏温度的转换");
            System.out.println("*********************************************");
    System.out.println("摄氏温度为:"+num);
    System.out.println("华氏温度为:"+result2);
    System.out.println("  ");
    }
    }
    public class ConversionTest                      //测试类
    {
    public static void main(String[] args) 
    {
    Celsius objC=new Celsius(100.0);
    objC.convert();
    Fahrenheit objF=new Fahrenheit(98.6);
    objF.convert();
    }
    }
      

  6.   

    以上都对~~~写代码的时候小心点吧,而且用eclipse应该是要提示错误的吧~~~