Description |
先定义一个圆类Circle,有double类型的半径属性,有带参数的构造函数和求面积的computeArea方法(为保护型的,返回值为面积,圆周率取3.14); 然后定义一个从Circle派生的圆柱类Cylinder,增加double类型的高属性,有带参数的构造函数以及一个计算圆柱体积的成员函数,此函数中要用到从父类继承来的求面积方法。实现并测试这个类,在main()函数中读入数据, 然后输出体积。 要求主函数中必须调用Cylinder的构造函数语句。 |
Input |
第一行输入数据的组数N, 然后有N组数据。每组数据由两个整型数组成,一个是半径,一个是高,数据之间以空格分隔。 |
Output |
输出圆柱体积(保留2位有效数字)。 |
Sample Input |
2 10 10 20 5 |
Sample Output |
3140.00 |
派生类定义:
class 父类名
{
注意父类中定义的变量要用protected
}
class 子类名 extends 父类名
{
...
}
............................................................................................................................................................
import java.util.*;
class Circle
{
protected double radius;
public Circle(){}
public Circle (double radius)
{
this.radius=radius;
}
}
class Cylinder extends Circle
{
private double height;
public Cylinder(){}
public Cylinder(double radius,double height) //继承父类的域并初始化;
{
this.radius=radius;
this.height=height;
}
public double computeArea(double radius)
{
return 3.14*radius*radius;
}
public double computeV(double radius,double height)
{
return computeArea(radius)*height;
}
}
public class Main {
public static void main(String args[]){
double r,h;
int t,i;
Scanner cin = new Scanner(System.in);
while(cin.hasNext()){
t=cin.nextInt();
for(i=0;i<t;i++)
{
r=cin.nextDouble();
h=cin.nextDouble();
Cylinder s=new Cylinder(r,h);
System.out.printf("%.2f\n",s.computeV(r, h));
}
}
}
}
测试数据: