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)
^
这个问题怎么解决?
{
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)
^
这个问题怎么解决?
{
double numhua; //华氏温度
double numshe; //摄氏温度
final int con=32; //final变量存储常量值
Conversion()
{ }
Conversion(double nohua)///这里
{
numhua=nohua;
}
Conversion(double noshe)//重复定义方法
{
numshe=noshe;
}
abstract void convert(); //抽象方法
}
你的两个构造方法参数都是double型的,虽然变量不同但也是属于参数类型相同
{
numhua=nohua;
}
Conversion(double noshe)
{
numshe=noshe;
}
重复了,函数参数类型,个数都一样。
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 ***)方法,只是参数名不一样,但是类型是一样的,劝楼主先研究下面向对象的基本知识,多态是怎么样的
记录温度的值用一个
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();
}
}