java(1)定义接口Shape及其抽象方法getArea 0和getPer imeter 0用于计算图形面积和周长。↓ (2)定义类Rectangle(矩形)、类Circle(圆形)、类Triangle(三角形),要求这些类继承接口shape并实现接口的抽象方法。完成测试类。
时间: 2024-12-21 12:21:40 浏览: 13
Java:使用抽象类定义一个“形状类”,能够计算周长和面积。
在Java中,我们可以按照以下步骤来定义接口`Shape`及其抽象方法,以及三个子类`Rectangle`、`Circle`和`Triangle`:
(1) 定义接口`Shape`:
```java
// 定义接口Shape
public interface Shape {
// 抽象方法,返回图形的面积
double getArea();
// 抽象方法,返回图形的周长
double getPerimeter();
}
```
(2) 定义`Rectangle`、`Circle` 和 `Triangle` 类,它们都继承自`Shape`接口并实现抽象方法:
```java
// 矩形类Rectangle
public class Rectangle implements Shape {
private double width;
private double height;
public Rectangle(double w, double h) {
this.width = w;
this.height = h;
}
@Override
public double getArea() {
return width * height;
}
@Override
public double getPerimeter() {
return 2 * (width + height);
}
}
// 圆形类Circle
public class Circle implements Shape {
private double radius;
public Circle(double r) {
this.radius = r;
}
@Override
public double getArea() {
return Math.PI * radius * radius;
}
@Override
public double getPerimeter() {
return 2 * Math.PI * radius;
}
}
// 三角形类Triangle
public class Triangle implements Shape {
private double base;
private double height;
public Triangle(double b, double h) {
this.base = b;
this.height = h;
}
@Override
public double getArea() {
return 0.5 * base * height;
}
@Override
public double getPerimeter() {
// 对于普通三角形,这里需要额外的边长信息
throw new UnsupportedOperationException("三角形的周长需要三个边的长度");
}
}
```
(3) 完成测试类,可以用来实例化并测试这三个形状的面积和周长:
```java
public class TestShapes {
public static void main(String[] args) {
// 创建并测试Rectangle
Rectangle rectangle = new Rectangle(4, 6);
System.out.println("Rectangle area: " + rectangle.getArea());
System.out.println("Rectangle perimeter: " + rectangle.getPerimeter());
// 创建并测试Circle
Circle circle = new Circle(3);
System.out.println("Circle area: " + circle.getArea());
System.out.println("Circle perimeter: " + circle.getPerimeter());
// 创建并尝试测试Triangle(未实现周长计算)
Triangle triangle = new Triangle(3, 4);
System.out.println("Triangle area: " + triangle.getArea());
}
}
```
阅读全文