1. 程式人生 > >利用介面和繼承實現  求三角形 圓形面積 和以圓形為底的圓錐形的體積

利用介面和繼承實現  求三角形 圓形面積 和以圓形為底的圓錐形的體積

/*I
 利用介面和繼承實現  求三角形  圓形面積  和以圓形為底的圓錐形的體積
 */
package Interface;
//定義一個Calculate介面
interface Calculate{
//定義一個抽象方法用於計算影象面積
public double calcu();
}
//定義一個三角形類
class Tirangle implements Calculate{
private double d;
private double h;
//新增構造方法
public Tirangle(double d,double h){
this.h = h;
this.d = d;
}
public double getD() {
return d;
}
public void setD(double d) {
this.d = d;
}
public double getH() {
return h;
}
public void setH(double h) {
this.h = h;
}
//重寫抽象方法
public double calcu() {
// TODO Auto-generated method stub
double ss = d*h/2;
//System.out.println("三角形面積為:"+ss);
return ss;
}
}
//定義一個圓形類
class Circle implements Calculate{
public static double r;
public static final double PI = 3.14;
//新增一個構造方法
public Circle(double r){
this.r = r;
}
public double getR() {
return r;
}
public void setR(double r) {
this.r = r;
}
//重寫抽象方法
public double calcu() {
// TODO Auto-generated method stub
double ss = PI*r*r;
//System.out.println("圓形面積為:"+ss);
return ss;
}
}
//定義一個圓錐類,繼承圓形類
class Taper extends Circle implements Calculate{
private double h;
//新增一個構造方法
public Taper(double r,double h){
super(r);
//super.calcu();
this.h = h;
}
public double getH() {
return h;
}
public void setH(double h) {
this.h = h;
}
public double volume() {
//super.calcu();
double vv =super.calcu()*h/3;//繼承上面圓形的SS
//System.out.println("圓錐的體積為"+vv);
return vv;

}
public class ShapeVolume {
public static void main(String [] args){
Calculate Tirangle  = new Tirangle(3,4);
Calculate Circle  = new Circle(1);
Calculate Taper = new Taper(1,1);
System.out.println(Tirangle.calcu());
System.out.println(Circle.calcu());
System.out.println( ((Interface.Taper) Taper).volume());
}
}