图形(Shape)接口和它的实现类:长方形(Rectangle)、正方形(Square)和圆形(Circle) 要求: (1)每一种图形都求它的周长double length()。 (2)在长方
时间: 2024-10-23 13:03:48 浏览: 66
在面向对象编程中,我们可以创建一个名为`Shape`的抽象接口(或者叫做抽象类),它包含一个共同的行为或者属性,比如计算周长的方法`length()`。然后让`Rectangle`、`Square`和`Circle`这三种图形类作为`Shape`接口的实现,每个具体类都会有自己的独特实现。
```java
// Shape 接口
public interface Shape {
double length();
}
// Rectangle 类,实现了 Shape 接口
public class Rectangle implements Shape {
private double width;
private double height;
public Rectangle(double width, double height) {
this.width = width;
this.height = height;
}
@Override
public double length() {
return 2 * (width + height);
}
}
// Square 类,也是 Shape 的实现,因为它是正方形,所以只有边长
public class Square extends Rectangle {
public Square(double side) {
super(side, side);
}
// Square 类直接继承 Rectangle 的 length() 方法,无需重写
}
// Circle 类,同样实现 Shape 接口
public class Circle implements Shape {
private double radius;
public Circle(double radius) {
this.radius = radius;
}
@Override
public double length() { // 对于圆来说,这是指圆的周长,公式为 2 * π * r
return 2 * Math.PI * radius;
}
}
```
在这个设计中,我们可以通过`Shape`类型的引用来处理任何形状的对象,并调用它们的公共方法`length()`。这就是多态的应用,简化了代码,提高了复用性。
阅读全文