Java设计形状类、圆类,长方形类
时间: 2024-10-29 18:05:39 浏览: 39
在Java中,我们可以采用"开闭原则"(Open-Closed Principle),即软件实体应当对扩展开放,对修改关闭,通过这种方式创建一个灵活的设计。为了实现这个目标,可以创建一个抽象的形状类Shape作为所有形状的基础,并派生出具体的形状类如Circle和Rectangle。
首先,我们定义一个Shape类,它包含一些通用属性和方法,比如面积和边界计算:
```java
abstract class Shape {
abstract double getArea();
abstract void draw();
}
```
接着,我们为特定的形状创建子类,比如Circle和Rectangle:
```java
class Circle extends Shape {
private double radius;
public Circle(double radius) {
this.radius = radius;
}
@Override
double getArea() {
return Math.PI * radius * radius;
}
@Override
void draw() {
// 圆形的绘制逻辑
}
}
class Rectangle extends Shape {
private double width;
private double height;
public Rectangle(double width, double height) {
this.width = width;
this.height = height;
}
@Override
double getArea() {
return width * height;
}
@Override
void draw() {
// 矩形的绘制逻辑
}
}
```
这样,每个形状类都实现了Shape接口中的getArea和draw方法,保持了代码的复用性和灵活性。用户可以根据需要实例化Circle或Rectangle对象,无需修改Shape类,只需要扩展即可添加新的形状类型。
阅读全文