📄 5例子10.txt
字号:
Geometry.java:
public abstract class Geometry{
public abstract double getArea();
}
Pillar.java:
public class Pillar{
Geometry bottom; //将Geometry对象作为成员
double height;
Pillar (Geometry bottom,double height){
this.bottom=bottom;
this.height=height;
}
void changeBottom(Geometry bottom){
this.bottom=bottom;
}
public double getVolume(){
return bottom.getArea()*height; //bottom可以调用子类重写的getArea方法
}
}
Lader .java:
public class Lader extends Geometry{
double a,b,h;
Lader(double a,double b,double h){
this.a=a; this.b=b; this.h=h;
}
public double getArea(){
return((1/2.0)*(a+b)*h);
}
}
Circle .java:
public class Circle extends Geometry{
double r;
Circle(double r){
this.r=r;
}
public double getArea(){
return(3.14*r*r);
}
}
Example5_10.java:
public class Example5_10{
public static void main(String args[]){
Pillar pillar;
Geometry tuxing;
tuxing=new Lader(12,22,100);
System.out.println("梯形的面积"+tuxing.getArea());
pillar =new Pillar (tuxing,58);
System.out.println("梯形底的柱体的体积"+ pillar.getVolume());
tuxing=new Circle(10);
System.out.println("半径是10的圆的面积"+tuxing.getArea());
pillar.changeBottom(tuxing);
System.out.println("圆形底的柱体的体积"+pillar.getVolume());
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -