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

关于抽象类的问题
abstract class Sudu_fl
{
private int zhuansu;

public Sudu_fl(){}
public abstract double getbanjing(double banjing);

public void setzhuansu(int zhuansu)
{
this.zhuansu=zhuansu;

public double sudu_car()
{
return java.lang.Math.PI*2* getbanjing() *zhuansu;
}
}
public class Sudu_zl extends Sudu_fl
{
public double getbanjing(double banjing)
{
return 0.28;
}
public static void main(String[]args){
Sudu_zl sz=new Sudu_zl();
sz.setzhuansu(15);
// sz.getbanjing(0.28);
sz.sudu_car();
System.out.println(sz.sudu_car());
}


}

------解决方案--------------------
return java.lang.Math.PI*2* getbanjing() *zhuansu;

错误很明显吧,你定义的 getbanjing(double banjing) 是必须有1个参数的,结果你这里调用时没给任何参数,当然错误。
------解决方案--------------------
修改的话,应该是:
public double getbanjing(double banjing) {
return this.banjing;
}

改为:
public double getbanjing(double banjing) {
return this.banjing = banjing;
}

但这样做从 语义上来说,不符合 get 的概念,另外你的命名也是乱来的,还是认真打好基础吧。