abstract class Shapes { //定义抽象类 Shapes
abstract public double area(); //周长
abstract public double square(); //面积
}
class Triangle extends Shapes { //继承 Shapes,定义三角型
private double a, b, c;
public Triangle(double a, double b, double c) {
this.a = a;
this.b = b;
this.c = c;
}
public double square() {
double p = (a + b +c) / 2;
return Math.sqrt(p * (p - a) * (p- b) * (p- c));
}
public double area() {
double cir = (a + b +c);
return cir;
}
public String toString() {
return "三角形:边长"+a+","+b+","+c;
}
}
class Rectangle extends Shapes { //定义矩形
private double width, height;//长,宽
public Rectangle(double j, double k) {
width = j; height = k;
}
public double area() {
double Rectangle =(width + height)*2;
return Rectangle;
}
public String toString() {
return "矩形:宽 "+width+" 高 "+height;
}
public double square() {
double Rectangle =width* height;
return Rectangle;
}
}
class Circle extends Shapes { //定义圆
private double r;
public Circle(double r) {
this.r = r;
}
public double area() {
return 3.14 * 2 * r;
}
public double square() {
return 3.14 * r * r;
}
public String toString() {
return "圆:半径= "+ r;
}
}
以上构造了 三角形、矩形、圆的函数,定义了 计算周长(area)面积(square)的方法。
下面是测试类代码如下:
//测试类
public class TestShapes {
public static void main(String args[]) {
Shapes s[] = new Shapes[3];
s[0] = new Triangle(3, 4, 5);
s[1] = new Rectangle(5.2,4.8);
s[2] = new Circle(5.2);
for (int k= 0; k < s.length; k ++)
System.out.println(s[k]+", 面积:"+s[k].square()+", 周长:"+s[k].area());
}
}