3. 图形(Shape)接口和它的实现类:长方形(Rectangle) 、正方形(Square)和圆形(Circle) 要求: (1)每一种图形都求它的周长doublelength()。 (2) 在长方形类中定义长length、宽width两个属性;在正方形类中定义边长x;在圆形类中定义半属性径r。 (3)在长方形类中定义带有两个参数的构造方法用于给长和宽赋值;在正方形类中定义带有一个参数的构造方法用于给边长赋值;在圆形类中定义一个带有一个参数的构造方法用于给半径赋值。 (4)在测试类中定义一个方法shapeLength可以接收任意类型的图形对象,在方法内部调用图形周长方法。
时间: 2024-04-07 09:34:01 浏览: 44
以下是图形接口和它的实现类的代码:
```java
// 图形接口
interface Shape {
double calculateLength();
}
// 长方形类
class Rectangle implements Shape {
private double length;
private double width;
public Rectangle(double length, double width) {
this.length = length;
this.width = width;
}
@Override
public double calculateLength() {
return 2 * (length + width);
}
}
// 正方形类
class Square implements Shape {
private double side;
public Square(double side) {
this.side = side;
}
@Override
public double calculateLength() {
return 4 * side;
}
}
// 圆形类
class Circle implements Shape {
private double radius;
public Circle(double radius) {
this.radius = radius;
}
@Override
public double calculateLength() {
return 2 * Math.PI * radius;
}
}
// 测试类
class Test {
public static void shapeLength(Shape shape) {
double length = shape.calculateLength();
System.out.println("周长:" + length);
}
public static void main(String[] args) {
Rectangle rectangle = new Rectangle(5, 3);
Square square = new Square(4);
Circle circle = new Circle(2);
shapeLength(rectangle);
shapeLength(square);
shapeLength(circle);
}
}
```
在测试类中,我们定义了一个静态方法`shapeLength`,它接收任意类型的图形对象,并在方法内部调用图形对象的`calculateLength`方法来计算周长。通过创建不同类型的图形对象,并调用`shapeLength`方法,我们可以得到每种图形的周长。