一个很简单的习题,我不会

[复制链接]
查看11 | 回复2 | 2006-8-10 17:16:00 | 显示全部楼层 |阅读模式
我买的书上有一个习题练习abstract类 和 static method的用法,
要求编写一个面积计算程序.我的程序如下
abstract class areacounting{
static final float pi=(float)3.14159;
abstract double quadrate(double x);
abstract double rectangle(double x,double y);
abstract double circle(double x);
}

public class test2 extends areacounting{
static double a=10,b=20;
static double quadrate(double x) {return (x*x);}
static double rectangle(double x,double y) {return (x*y);}
public static double circle(double x) {
return (pi*x*x);
}
public static void main(String args[]){
System.out.println("正方形面积"+quadrate(a));
System.out.println("长方形面积"+rectangle(a,b));
System.out.println("圆形面积"+circle(a));
}
}
编译的时候出现错误:

请问,这是怎么回事情
[/img]
回复

使用道具 举报

千问 | 2006-8-10 17:16:00 | 显示全部楼层
abstract class areacounting{
public final float pi=(float)3.14159;
public abstract double quadrate(double x);
public abstract double rectangle(double x,double y);
public abstract double circle(double x);
}

public class test2 extends areacounting{
static double a=10,b=20;
public double quadrate(double x) {return (x*x);}
public double rectangle(double x,double y) {return (x*y);}
public double circle(double x) {
return (pi*x*x);
}
public static void main(String args[]){
test2 t =new test2();
System.out.println("正方形面积"+t.quadrate(t.a));
System.out.println("长方形面积"+t.rectangle(t.a,t.b));
System.out.println("圆形面积"+t.circle(t.a));
}
}
这样写就可以
回复

使用道具 举报

千问 | 2006-8-10 17:16:00 | 显示全部楼层
抽象类(如,areacounting)中的抽象方法不能用下列修饰词来修饰。
static abstract …
private abstract …
final abstract …
抽象类中的抽象方法只能用访问修饰词 public 或 protected 来修饰。
在定义一个继承了抽象类(如,areacounting)的类(如,test2)时,抽象方法被实现后,所用的访问修饰词,必须 ”等于或宽于” 原来的访问修饰词。
abstract class areacounting{
static final float pi=(float)3.14159;
protected abstract double quadrate(double x);
protected abstract double rectangle(double x,double y);
public abstract double circle(double x);
}

public class test2 extends areacounting{
static double a=10,b=20;
public double quadrate(double x) {return (x*x);}
protected double rectangle(double x,double y) {return (x*y);}
public double circle(double x) {
return (pi*x*x);
}
public static void main(String args[]){
test2 t = new test2();
System.out.println("正方形面积: "+ t.quadrate(a));
System.out.println("长方形面积: "+ t.rectangle(a,b));
System.out.println("圆形面积: " + t.circle(a));
}
}
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行