設計一個類層次,定義一個抽象類--形狀(類名:shape)。
其中包括求形狀的面積抽象方法(方法名:calArea())。
繼承該抽象類定義三角形(Triangle)、矩形(Rectangle)、圓(Circle)並分別存入一個數組中。
將數組中各類圖形的面積輸出。
Shape:
package com.cdp.shape;
public abstract class Shape {
abstract double calArea();
}
Triangle:
package com.cdp.shape;
public class Triangle extends Shape {
// 屬性
private double a, h;
// 構造方法
public Triangle(double a, double h) {
this.a = a;
this.h = h;
}
@Override
double calArea() {
// TODO Auto-generated method stub
return a * h / 2;
}
}
Rectangle:
package com.cdp.shape;
public class Rectangle extends Shape {
private double w, h;
public Rectangle(double w, double h) {
this.h = h;
this.w = w;
}
@Override
double calArea() {
// TODO Auto-generated method stub
return w * h;
}
}
Circle:
package com.cdp.shape;
public class Circle extends Shape {
private double r;
public Circle(double r) {
this.r = r;
}
@Override
double calArea() {
// TODO Auto-generated method stub
return 3.14 * r * r;
}
}
Task測試類:
package com.cdp.shape;
public class Task {
public static void main(String[] args) {
// TODO Auto-generated method stub
// 定義一個形狀數組
Shape[] s = new Shape[3];
// 將三角形、矩形、圓形放入數組中
s[0] = new Triangle(3, 4);
s[1] = new Rectangle(5, 6);
s[2] = new Circle(2);
// 輸出面積
System.out.println("三角形的面積為" + s[0].calArea());
System.out.println("矩形的面積是:" + s[1].calArea());
System.out.println("圓形的面積是:" + s[2].calArea());
}
}
運行結果:
三角形的面積為6.0 矩形的面積是:30.0 圓形的面積是:12.56
