/**编写一个java程序,用于将摄氏温度转换为华氏温度反之亦然.使用继承定义一个父类
*其中包含convert()的抽象方法.定义两个子类用于重写convert()方法,一个子类将提供
*从摄氏到华氏转换的实现,另一个子类将提供从华氏到摄氏的转换实现,再编写一个测试
*类将华氏100度转换为摄氏温度,并将摄氏温度98.6转换为华氏温度,声明final变量以存储
*常量值32
*/
abstract class temperature{
double C;
double F;
final int X=32;
temperature(double C,double F){
this.C=C;
this.F=F;
}
abstract void convert();
}
class CConvertF extends temperature{
CConvertF(double C){
super(C);
}
public double convert(){
return F=(C-X)*5/9;
}
void Display(){
System.out.println("摄氏温度为"+C);
System.out.println("华氏温度为"+convert());
}
}
class FConvertC extends temperature{
FConvertC(double F){
super(F);
}
public double convert(){
return C=F*9/5+X;
}
void Display(){
System.out.println("华氏温度为"+F);
System.out.println("摄氏温度为"+convert());
}
}
public class ConversionTest{
public static void main(String[] args){
CConvertF convertF=new CConvertF(100.0);
System.out.println("从华氏温度到摄氏温度的转换");
System.out.println("-------------------------------------------------");
convertF.Display();
FConvertC convertC=new FConvertC(98.6);
System.out.println("从摄氏温度到华氏温度的转换");
System.out.println("-------------------------------------------------");
convertC.Display();
}
}
望高手指出错误后说明下为什么不能这么写,刚学面向对象,感觉很搞~~谢谢了!!!
----------------解决方案--------------------------------------------------------
你的程序真的很乱,要重写convert()的话,下面的也应该一样的啊,你前面为void而后面却成了double了,一个没有返回值,一个却有,还有
public double convert(){
return F=(C-X)*5/9;
}
这个又是什么啊,没有参数传进去,怎么执行return F=(C-X)*5/9;这个语句啊楼主要细心一点哦
----------------解决方案--------------------------------------------------------
package com.digitalchina.power.billing;
abstract class Temperature{
double C;
double F;
final int X=32;
public Temperature(double F,double C){
this.C=C;
this.F=F;
}
abstract double convert();
}
class CConvertF extends Temperature{
CConvertF(double F,double C){
super(F,C);
}
public double convert(){
return C=(F-X)*5/9;
}
void Display(){
System.out.println("华氏温度为"+F);
System.out.println("摄氏温度为"+convert());
}
}
class FConvertC extends Temperature{
FConvertC(double F,double C){
super(F,C);
}
public double convert(){
return F=(C*9/5+X);
}
void Display(){
System.out.println("摄氏温度为"+C);
System.out.println("华氏温度为"+convert());
}
}
public class ConversionTest{
public static void main(String[] args){
CConvertF convertF=new CConvertF(100.0,0.0);
System.out.println("从华氏温度到摄氏温度的转换");
System.out.println("-------------------------------------------------");
convertF.Display();
System.out.println("");
System.out.println("");
FConvertC convertC=new FConvertC(0.0,98.6);
System.out.println("从摄氏温度到华氏温度的转换");
System.out.println("-------------------------------------------------");
convertC.Display();
}
}
给楼主改了一下,对照一下就知道问题所在了。
PS:对于继承来讲,首先构造函数的模式应该是一致的,其次。。。。都在代码里了~
----------------解决方案--------------------------------------------------------
小弟因为刚学三天JAVA所以实在很不熟悉,对抽象类和继承还非常陌生!!所以写得乱七八糟!!感谢各位的指点,谢谢了!!!
----------------解决方案--------------------------------------------------------
顶楼上的,为你加油了,呵呵~~
----------------解决方案--------------------------------------------------------
我也是一个新手,希望我们在大家在这里共同进步!
----------------解决方案--------------------------------------------------------
more study more good ,
----------------解决方案--------------------------------------------------------