Java把抽象类改为接口,然后基于接口派生出若干子类, 以分别计算三角形、长方彩和椭圆的面积。
时间: 2023-07-04 22:26:34 浏览: 81
好的,基于接口实现三个形状的类,并分别计算它们的面积,代码如下:
```java
public interface Shape {
double getArea();
}
public class Triangle implements Shape {
private double a, b, c;
public Triangle(double a, double b, double c) {
this.a = a;
this.b = b;
this.c = c;
}
@Override
public double getArea() {
double p = (a + b + c) / 2;
return Math.sqrt(p * (p - a) * (p - b) * (p - c));
}
}
public class Rectangle implements Shape {
private double width, height;
public Rectangle(double width, double height) {
this.width = width;
this.height = height;
}
@Override
public double getArea() {
return width * height;
}
}
public class Ellipse implements Shape {
private double a, b;
public Ellipse(double a, double b) {
this.a = a;
this.b = b;
}
@Override
public double getArea() {
return Math.PI * a * b;
}
}
// 使用方法
Shape t = new Triangle(3, 4, 5);
double area = t.getArea();
System.out.println("三角形面积为:" + area);
Shape r = new Rectangle(3, 4);
area = r.getArea();
System.out.println("长方形面积为:" + area);
Shape e = new Ellipse(3, 4);
area = e.getArea();
System.out.println("椭圆面积为:" + area);
```
这里我们定义了一个`Shape`接口,包含一个`getArea()`方法,然后分别实现了三个形状的类,并实现了`Shape`接口。最后使用时,可以根据需要创建相应的对象,并调用`getArea()`方法计算面积。