题目要求:
有一个抽象类ObjectVolume,如下所示:
abstract class ObjectVolume
{
abstract double getVolume(); //返回物体的体积
}
(1)编写球体类,立方体类和圆柱体类,它们是抽象类ObjectVolume的子类。
(2)编写一个公共类,其中包含main方法和static void get(ObjectVolume obj)方法。
(3)在main方法中,从键盘上输入1(表示球体)、2(表示立方体)、3(表示圆柱体)时,调用get方法可以分别得到球体、立方体、圆柱体的体积。
/*疑惑:我不知道static void get(ObjectVolume obj)方法干什么用的...怎么创建,是在主函数里创建吗?老师说要使用上转型什么的。。。不知道如何使用程序已经编好,请教如何修改使得static void get(ObjectVolume obj)方法能够用到*/
请尽量用简单的语言和方法修改...
package pzw;
import java.util.Scanner;
public class main {
public static void main(String[] args) {
int a;
double b;
Scanner reader=new Scanner(System.in);
System.out.println("请输入1(表示球体)、2(表示立方体)、3(表示圆柱体)");
a=reader.nextInt();
if(a==1)
{
double r,v;
System.out.println("请输入半径");
r=reader.nextDouble();
qiu x=new qiu(r);
v=x.getVolume();
System.out.println("球体积为"+v);
}
else if(a==2)
{
double r,v;
System.out.println("请输入边长");
r=reader.nextDouble();
lifangti x=new lifangti(r);
v=x.getVolume();
System.out.println("立方体体积为"+v);
}
else if(a==3)
{
double r,h,v;
System.out.println("请输入半径和高");
r=reader.nextDouble();
h=reader.nextDouble();
yuanzhu x=new yuanzhu(r,h);
v=x.getVolume();
System.out.println("圆柱体体积为"+v);
}
}
}
package pzw;
abstract class ObjectVolume {
abstract double getVolume();
}
package pzw;
public class lifangti extends ObjectVolume{
double v;
lifangti(double a){
v=a*a*a;
}
public double getVolume()
{
return v;
}
}
package pzw;
public class qiu extends ObjectVolume{
double v=0;
qiu(double a)
{
v=4.0/3*a*a*a*3.14;
}
public double getVolume()
{
return v;
}
}
package pzw;
public class yuanzhu extends ObjectVolume
{
double v;
yuanzhu(double r,double h)
{
v=h*r*r*3.14;
}
public double getVolume()
{
return v;
}
}